Ich versuche Anrufblocker und unter Berechtigungen in Manifest hinzugefügt.Null eingehende Nummer in Marshmallow mit PhoneStateListener
<uses-permission-sdk-23 android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
für Empfänger ist mein Code:
public class PhoneCallStateListener extends PhoneStateListener {
public class PhoneCallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences sharedPreferences = context.getSharedPreferences("CallBlockingPreference", Context.MODE_PRIVATE);
boolean blockCalls=sharedPreferences.getBoolean("blockCall", false);
Toast.makeText(context, "Call block enabled", Toast.LENGTH_SHORT).show();
TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
PhoneCallStateListener customPhoneListener = new PhoneCallStateListener(context);
telephony.listen(customPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
}
}
-Code für den Vergleich Nummer:
public PhoneCallStateListener(Context context) {
this.context = context;
}
@Override
public void onCallStateChanged(int state, String incomingNumber) {
preferences = context.getSharedPreferences(MYPREFS, Context.MODE_PRIVATE);
setdefault.add("");
editor = preferences.edit();
switch (state) {
case TelephonyManager.CALL_STATE_RINGING:
ArrayList<String> allBlockedNuber = new ArrayList<>();
reterievePref = preferences.getStringSet("listOfBlockedNumbers", setdefault);
allBlockedNuber.addAll(reterievePref);
System.out.println(allBlockedNuber.size());
System.out.println(incomingNumber);
}
}
I null eingehende Nummer und Fehler m immer als:
java.lang.SecurityException: Neither user 10561 nor current process has android.permission.CALL_PHONE.
Mobil zeigt nur eine Erlaubnis als Pho ne und das habe ich manuell gegeben. Warum dann Fehler und eingehende Nummer nicht bekommen? bitte Führer.
Laufzeit Erlaubnis nehmen, wenn Sie Android SDK sind Targeting> = 23 – Aryan
Dank, es funktionierte. – Panache