Android'de yeniyim. Telefonumun iki SIM yuvası var ve ikinci SIM kartın bilgilerini bilmek istiyorum. Bu nedenle, gizli olan TelephonyManager'da aşağıdaki yöntemi kullanmak istiyorum.Android'de gizli bir yöntem nasıl kullanılır?
Birisi nasıl yansıtacak kullanmak söyle, burada benim deneyin olduğunu.
java.lang.NoSuchMethodException: getSimState [int]
at java.lang.Class.getConstructorOrMethod(Class.java:472)
at java.lang.Class.getMethod(Class.java:857)
at (MainActivity.java:61)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18442)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5195)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:603)
at dalvik.system.NativeStart.main(Native Method)
bana bunu düzeltmek için yardımcı olabilir misiniz:
Class<TelephonyManager> telephonyManagerClass = TelephonyManager.class;
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
try {
Method method = telephonyManagerClass.getMethod("getSimState", new Class[]{int.class});
method.setAccessible(true);
Object object = method.invoke(telephonyManager,1);
int a = (int)object;
System.out.println(a);
} catch (NoSuchMethodException e) {
e.printStackTrace();
}catch (Exception e){
e.printStackTrace();
}
Maalesef burada istisna değildir?
Hangi Android sürümü altında çalışıyorsunuz? –
merhaba, @MikeM. 23. – Zack
Bu kodu doğrudan telefonunuzda mı çalıştırıyorsunuz, yoksa bir emülatörde test ediyor musunuz? –