Я пишу приложение, которое я хочу, чтобы иметь возможность завершать звонки. Есть несколько других сообщений на эти темы, но они устарели:
Завершить вызов в Android программно
как решить эту ошибку "com.android.internal.telephony не может быть разрешен для типа" в Android
http://androidsourcecode.blogspot.com/
Общая идея заключается в создании пакета с именем com.android.internal.telephony с файлом ITelephony.AIDL внутри:
ITelephony.AIDL:
package com.android.internal.telephony;
interface ITelephony {
boolean endCall();
void answerRingingCall();
void silenceRinger();
}
затем, включив этот фрагмент кода в мою программу, я могу ссылаться на ITelephony и завершать вызовы:
try {
TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
Class<?> c = Class.forName(telephony.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
com.android.internal.telephony telephonyService = (com.android.internal.telephony) m.invoke(telephony);
telephonyService.endCall();
Log.i("Info","Call was ended by ITelephony");
} catch (Exception e) {
Log.i("Error","Call was not ended by ITelephony" + e.getMessage());
}
Однако моя программа не может найти пакет телефонии (CallReceiver.java справа):
ВЫВОД:
Я хочу знать, делаю ли я какую-то базовую ошибку с упаковкой, есть ли новый способ сделать это, или это просто невозможно больше.