كيفية استخدام جيتافيلابلينيتوركس من الروبوت / الداخلية / المهاتفة / الهاتف.جافا

StackOverflow https://stackoverflow.com//questions/9614312

سؤال

لدي شرط حيث أحتاج إلى تطوير تطبيق الروبوت لنيكزس الصورة للحصول على جميع مشغلي الشبكات المتاحة المحيطة بي.

لقد تم متابعة مع الكثير من بلوق للحصول على هذا القيام به.

أولا هو أبي الداخلية / المخفية

لذلك اتبعت هذه الطريقة لتسميتها.

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
telephonyManagerClass = Class.forName(telephonyManager.getClass().getName());
Method getITelephonyMethod = telephonyManagerClass.getDeclaredMethod("getITelephony");
getITelephonyMethod.setAccessible(true);
ITelephonyStub = getITelephonyMethod.invoke(telephonyManager);
ITelephonyClass = Class.forName(ITelephonyStub.getClass().getName());

setPrefNetmethod = ITelephonyClass.getDeclaredMethod(
                    "getAvailableNetworks", new Class[] { Message.class });

Message response = Message.obtain();
setPrefNetmethod.setAccessible(false);

setPrefNetmethod.invoke(ITelephonyStub, new Object[] { network_mode, response });

ولكن أحصل على سيتبريفنيتمثود = نول دائما...

لقد وضعت حتى <uses-permission android:name="android.permission.READ_PHONE_STATE" /> في البيان الروبوت...

أي مساعدة ستكون رائعة بالنسبة لي.

هل كانت مفيدة؟

المحلول

فقط لمعرفة ما هي الأساليب المتاحة على كائن إيتليفوني ، بدلا من استخدام جيتديكلاردميثود () حاول هذا:

Method[] methods = ITelephonyClass.getDeclaredMethods();
for (Method method : methods) {
    Log.i("Method", "Method name is: "+method.getName());
}

يجب أن يسجل هذا قائمة بالطرق المتاحة.ربما هناك واحد التي تبدو وكأنها سوف تساعدك.بمجرد العثور على الطريقة التي تريدها ، يمكنك أيضا الاتصال بالطريقة.جيتباراميتيرتيبس () الذي سيعود مجموعة من أسماء الفئات.سيخبرك هذا بالمعلمات التي تتوقعها الطريقة.

ومع ذلك ، قد لا يكون من الممكن بالنسبة لك أن تفعل ما تريد ، حيث أن كل مصنع حر في تغيير هذه الأشياء على النحو الذي تراه مناسبا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top