Я пытаюсь разработать нечто похожее на AutoAnswer, но оно также автоматически зависает, когда уведомляется о широковещательном приемнике. Я потратил весь день на чтение другого вопроса stackoverflow по этой проблеме, и кажется, что разрешение MODIFY_PHONE_STATE
ограничено системными приложениями, однако некоторые сообщения говорят, что с помощью endCall(); не требует этого разрешения.Есть ли вообще способ прекратить вызов в Android 2.3?
Мой вопрос состоит из двух частей:
- Is
endCall()
еще можно использовать? Используется ли он когда-либо в любом случае с Android 2.3? - Если это так, мне нужна помощь, чтобы она работала, потому что сейчас она не работает. Я загружаю
ITelephony.aidl
от http://code.google.com/p/autoanswer/source/browse/trunk/src/com/#com/android/internal/telephony и поставлю его в упаковке. Я новый пользователь, поэтому я не могу отправлять изображения.
Это то, что мой файл дерево выглядит в NetBeans:
И это код, то будет работает в моем BroadcastReceiver. Это была размещена много раз здесь, прежде чем в качестве решения этой проблемы пока еще не могу заставить его работать:/
ITelephony telephonyService;
TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
try {
Class c = Class.forName(telephony.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
telephonyService = (ITelephony) m.invoke(telephony);
telephonyService.endCall();
}
catch (Exception e) {
//TODO: some exception handling
}
Листая журналы, я вижу эту ошибку:
[PhoneIntfMgr] CMD_END_CALL: no call to hang up
EDIT : Я новичок в разработке Android и не могу найти консольный вывод для приложений для Android - например, для вызова e.printStackTrace(), но у меня есть Toast, отображающий некоторый текст внутри блока catch следующим образом:
catch (Exception e) {
Toast toast = Toast.makeText(context, "IN CATCH BLOCK ", Toast.LENGTH_LONG);
toast.show();
e.printStackTrace();
}
Но ничего не отображается на экране ..
С состоянием вашего кода вы не можете определить, было ли исключено исключение. Возможно, для начала вы должны добавить в свой блок catch некоторый отладочный вывод. – Paulpro
Надеюсь, что это поможет .. http://stackoverflow.com/questions/10860369/fetch-dial-number-while-calling –
Сначала узнайте о logcat. Затем подумайте, почему вы хотите повесить трубку пользователя на них - это очень редко подходит. –