как решить эту ошибку «com.android.internal.telephony не может быть разрешен к типу» в Android

Я создаю простое приложение фильтра вызовов, которые ограничивают нежелательные звонки. Я использую следующий код, чтобы ограничить вызов, но я не могу решить проблему этой строки в следующем коде "com.android.internal.telephony.ITelephony telephonyService = (ITelephony) m.invoke (tm); msgstr "это показывает сообщение об ошибке com.android.internal.telephony не может быть разрешено для типа в Android, как решить эту ошибку.

public class CallBlockReceiver extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub

    }

    private void getTeleService(Context context) {
        TelephonyManager tm = (TelephonyManager) context
                .getSystemService(Context.TELEPHONY_SERVICE);
        try {
            // Java reflection to gain access to TelephonyManager's
            // ITelephony getter
            Log.v("", "Get getTeleService...");
            Class c = Class.forName(tm.getClass().getName());
            Method m = c.getDeclaredMethod("getITelephony");
            m.setAccessible(true);
            com.android.internal.telephony.ITelephony telephonyService = (ITelephony) m.invoke(tm);
        } catch (Exception e) {
            e.printStackTrace();
            Log.e("",
                    "FATAL ERROR: could not connect to telephony subsystem");
            Log.e("", "Exception object: " + e);
        }
}

}

Пожалуйста, помогите мне .

 Prashant Kadam02 апр. 2012 г., 08:12
Нет, я не добавил файл ITelephony.AIDL. как добавить это?
 buzibuzi06 дек. 2013 г., 15:25
@ ρяσѕρєя K - эта структура папок идет в "myApp / App / src"? я попытался создать эту структуру папок, но автозаполнение редактора Andoid Studio не показывает его при вводе «import com.example.app ...»
 ρяσѕρєя K02 апр. 2012 г., 08:01
Вы добавили файл ITelephony.AIDL в свой проект? и если вы добавили, то имя вашего пакета должно быть имя пакета должно бытьcom/android/internal/telephony/ITelephony.AIDL

Ответы на вопрос(3)

Убедитесь, что вы пытаетесь вызвать допустимое имя метода - велика вероятность того, что этот API изменился или не существует в версии, для которой вы разрабатываете.

что позволяет избежать необходимости указывать тип и добавлять файл AIDL. Например, завершение вызова:

TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
Class<?> c = Class.forName(tm.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
Object telephonyService = m.invoke(tm);
Class<?> telephonyServiceClass = Class.forName(telephonyService.getClass().getName());
Method endCallMethod = telephonyServiceClass.getDeclaredMethod("endCall");
endCallMethod.invoke(telephonyService);
 Ankit Aggarwal05 июл. 2016 г., 18:54
Большое спасибо! Блестящий ответ!
Решение Вопроса

ITelephony.AIDL файл в вашем проекте? и если вы добавили, то имя вашего пакета должно бытьcom/android/internal/telephony/ITelephony.AIDL: для дополнительной информацииБлокировка входящего звонка, скачать файл AIDL сВот

 ρяσѕρєя K02 апр. 2012 г., 08:22
Prashant, создайте структуру папок com / android / internal / telephony внутри папки src и поместите файл aidl в папку телефонии
 Gowtham Gopalakrishnan14 янв. 2015 г., 05:53
после этих шагов и очистки проект работал для меня. Большое спасибо...
 Prashant Kadam02 апр. 2012 г., 08:35
Большое спасибо Imran за его работу ... :)

Ваш ответ на вопрос