Я обнаружил проблему, связанную с тем, что на nexus 5x с android 8.1 и патчем безопасности от августа вызывая метод с помощью отражения зависает приложение, этот же вызов работает на 10 других устройствах с android 8.0, android 7.1.1 и т. Д. Возможно ли это? чтобы выяснить, что является причиной проблемы, когда я делаю вызов отражением, я даже не получаю исключение или какой-то полезный журнал, ничего, он просто зависает.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && Build.VERSION.SDK_INT < Build.VERSION_CODES.P) {
try {
final TelephonyManager telMan = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
final Class<?> classTemp = Class.forName(telMan.getClass().getName());
final Method methodTemp = classTemp.getDeclaredMethod("getITelephony");
methodTemp.setAccessible(true);
ITelephony telephonyService = (ITelephony) methodTemp.invoke(telMan);
telephonyService.endCall();
return true;
} catch (Exception ex) {
return false;
}
} else {
Заморозка происходит по адресу telephonyService.endCall (); и не исключение не выбрасывается
«Получить поток дампа» показывает следующее:
"main@8285" prio=5 tid=0x2 nid=NA runnable
java.lang.Thread.State: RUNNABLE
at android.os.BinderProxy.transactNative(Binder.java:-1)
at android.os.BinderProxy.transact(Binder.java:764)
at com.android.internal.telephony.ITelephony$Stub$Proxy.endCall(ITelephony.java:2026)