Тестирование ITelephony endCall на AVD выдает java.lang.NoSuchMethodError
У меня нет проблем с выполнением кодов блокировки вызовов, когда ОС является Marshmallow и выше, но тестирование его на Kitkat в AVD бросает java.lang.NoSuchMethodError: com.android.internal.telephony.ITelephony.endCall
public interface ITelephony {
void endCall();
void silenceRinger();
}
Это используемые разрешения:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
Это выполняется в BroadcastReceiver:
Class<?> c = Class.forName(tm.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
ITelephony telephonyService = (ITelephony) m.invoke(tm);
telephonyService.silenceRinger();
telephonyService.endCall();
Это мой выпускник
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.app.testapp"
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.android.support:design:27.0.2'
implementation 'com.googlecode.libphonenumber:libphonenumber:8.8.3'
implementation 'com.google.android.gms:play-services-ads:11.8.0'
}
0 ответов
Этот метод больше не доступен в этом классе с API 29. Замены также нет. Я проверил все методы, доступные в этом классе. Вероятно, это связано с тем, что он был также удален из TelecomManager https://developer.android.com/reference/android/telecom/TelecomManager.html. Обработка вызовов с помощью настраиваемого дозвона по-прежнему будет работать.