2016-04-22 15 views
0

Ich mache App Android.1 Aktivität und 1 Boardcast erhalten.App android Fehler beim Neustart Telefon

public abstract class PhonecallReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 

     if  (intent.getAction().equals("android.intent.action.NEW_OUTGOING_CALL")) { 
     savedNumber = intent.getExtras().getString("android.intent.extra.PHONE_NUMBER"); 
    } 
    else{ 
     String stateStr = intent.getExtras().getString(TelephonyManager.EXTRA_STATE); 
     String number = intent.getExtras().getString(TelephonyManager.EXTRA_INCOMING_NUMBER); 
     int state = 0; 
     if(stateStr.equals(TelephonyManager.EXTRA_STATE_IDLE)){ 
      state = TelephonyManager.CALL_STATE_IDLE; 
     } 
     else if(stateStr.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)){ 
      state = TelephonyManager.CALL_STATE_OFFHOOK; 
     } 
     else if(stateStr.equals(TelephonyManager.EXTRA_STATE_RINGING)){ 
      state = TelephonyManager.CALL_STATE_RINGING; 
     } 


     onCallStateChanged(context, state, number); 
    } 
} 
} 

Und manifestfile

<receiver 
android:name=".PhonecallReceiver" 
android:enabled="true" 
android:exported="true"> 
<intent-filter> 
    <action android:name="android.intent.action.BOOT_COMPLETED"/> 
    <action android:name="android.intent.action.PHONE_STATE" /> 
    <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> 
</intent-filter> 

Wenn er gestartet wird, app laufen fine.But, wenn ich Telefon neu starten, app Fehler bei:

if (intent.getAction().equals("android.intent.action.NEW_OUTGOING_CALL")) 

Wie beheben error.Thank

Antwort

0

Sie sollten null auf Absicht prüfen. Zum Beispiel

if(intent != null && !TextUtils.isEmplty(intent.getAction()) 
{ 

} 

und plz posten Sie Ihr Fehlerprotokoll hier drin.

0

Haben Sie unter Code in Manifest?

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"> 

Bitte posten Sie Ihre Fehlerprotokoll hier