Я пытаюсь настроить Broadcastreceiver с PHONE_STATE. Это мой код:
<receiver android:name=".IncomingCallReceiver"
android:enabled="true"
android:exported="true"
android:label="BootReceiver">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
Класс:
public class IncomingCallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("TAG","ESTAMOS DENTRO!!");
MyPhoneStateListener phoneListener = new MyPhoneStateListener();
TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE);
}
public class MyPhoneStateListener extends PhoneStateListener{
public void onCallStateChanged(int state, String incomingNumber){
switch (state){
case TelephonyManager.CALL_STATE_IDLE:
Log.d("DEBUG","IDLE");
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.d("DEBUG","OFFHOOK");
break;
case TelephonyManager.CALL_STATE_RINGING:
Log.d("DEBUG","RINGING: " + incomingNumber);
break;
default:
break;
}
}
}
}
Это прекрасно работает в моем эмуляторе (Nougat), но когда я пытаюсь использовать его в моем devide (7), не работает, я ничего не вижу в logcat ..
Я пробовал с приоритетом или без него. С экспортированным / включенным и без него. Ничего.
Есть идеи ??
Спасибо