2017-02-21 5 views
1

Mein Rundfunkempfänger für PHONE_STATE Nähe arbeitet für kitkat und Lollypop Version auch wenn App geschlossen ist, aber wenn ich Lollypop Version verwende seine nicht funktioniert, wenn App geschlossen istBroadCastReciver für Telefonstatus nicht funktioniert als App für Lollypop Version

Hier ist mein Manifest-Datei

<application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:name=".MainActivity" 
      android:exported="true"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 



     <receiver android:name=".BlockCallReceiver" android:exported="true"> 
      <intent-filter> 
       <action android:name="android.intent.action.PHONE_STATE" /> 
       <action android:name="android.intent.action.USER_PRESENT" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </receiver> 



    </application> 
+0

Bitte fügen Sie Ihre Sendung r eceiver Klasse –

+0

Empfänger Klasse ist zu lang. In reciver Klasse Ich bin Anruf automatisch ablehnen – Yogesh

+0

haben Sie eine Antwort für diese – Moulesh

Antwort

1

Einige neue android-Geräte Sicherheits-Anwendung standardmäßig haben. Manchmal sperren diese Apps den Autostart-Modus. Kannst du die Einstellungen überprüfen, die den Boot-Broadcast-Empfänger möglicherweise verhindern?

+0

finden Sie funktioniert ordnungsgemäß, wenn die Anwendung Hintergrund oder Vordergrund, aber wenn ich meine App aus der letzten App entfernen funktioniert nicht – Yogesh

+0

Wenn Sie die Anwendung entfernen, wird es nicht funktionieren. –

+0

Aber für kitkat Und Marsh-mellow Versionen funktioniert es. – Yogesh

1

Erstellen Sie eine neue App und versuchen Sie es;

Broadcast-Receiver

public class PhoneStateReceiver extends BroadcastReceiver { 
    public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    String str = intent.getAction(); 
    if ("android.intent.action.PHONE_STATE".equals(str)) 
     inComing(context, intent); 

    if ("android.intent.action.NEW_OUTGOING_CALL".equals(str)) 
     outGoing(context, intent); 
    } 

private void inComing(Context context, Intent intent){ 
    String callState = intent.getStringExtra("state"); 
    if ("RINGING".equals(callState)){ 
     Log.i(TAG, "RINGING SENDS BUSY"); 
    }else if ("OFFHOOK".equals(callState)){ 
     Log.i(TAG, "OFFHOOK SENDS BUSY"); 
    }else if("IDLE".equals(callState)){ 
     Log.i(TAG, "IDLE SENDS AVAILABLE"); 
    } 
    } 

private void trueCallerOutgoing(Context context, Intent intent) 
    { 
    String callState = intent.getStringExtra("state"); 
    if ("RINGING".equals(callState)){ 
      Log.i(TAG, "RINGING SENDS BUSY"); 
    }else if ("OFFHOOK".equals(callState)){ 
      Log.i(TAG, "OFFHOOK SENDS BUSY"); 
    }else if("IDLE".equals(callState)){ 
      Log.i(TAG, "IDLE SENDS AVAILABLE"); 
    } 
    } 
} 

Manifest

<receiver android:name="PhoneStateReceiver" > 
     <intent-filter> 
      <action android:name="android.intent.action.PHONE_STATE" /> 
      <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> 
     </intent-filter> 
    </receiver> 

Und Vergessen Sie nicht die Erlaubnis

<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
+0

Es funktioniert .. Aber wenn ich schließe, funktioniert die App nicht für Lollypop Version. Und es funktioniert für andere Versionen, auch wenn Anwendung geschlossen ist. – Yogesh

+0

versuchen Sie ein anderes mobil Geräte. –

+0

Ich versuchte auf Lenovo, Oppo, Iball, es funktioniert nicht .. – Yogesh

Verwandte Themen