Cómo resolver este error "com.android.internal.telephony no se puede resolver a un tipo" en android

Estoy creando la aplicación simple del filtro de la llamada que restringe llamadas no deseadas. Utilizo el siguiente código para restringir la llamada pero no puedo resole el problema de esta línea debajo del código " com.android.internal.telephony.ITelephony telephonyService = (ITelephony) m.invoke ™; " muestra el mensaje de error com. Android.internal.telephony no se puede resolver a un tipo en android cómo resolver este error.

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); } } } 

Por favor, ayúdame .

Ha agregado el archivo ITelephony.AIDL en su proyecto? Y si ha agregado entonces su nombre de paquete debe ser com/android/internal/telephony/ITelephony.AIDL : para más información Bloqueo Llamada entrante . Descargar el archivo AIDL desde aquí

Puede utilizar la reflexión para llamar a métodos en el objeto ITelephony evitando así la necesidad de especificar el tipo y agregar el archivo AIDL. Por ejemplo, finalizar una llamada:

 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); 

Está utilizando la API interna / oculta de Android con reflexión.

Compruebe que intenta invocar un nombre de método válido – existe una gran posibilidad de que esta API haya cambiado o no exista en la versión para la que esté desarrollando.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.