使用广播接收器来接收来电,onReceive没有触发?无法打印日志

时间:2017-10-27 14:16:41

标签: android android-broadcastreceiver

在broadcastReceiver中:

public void onReceive(最终上下文上下文,Intent intent){

  Log.e("Current:","entered111!");

  String stateStr = intent.getExtras().getString(TelephonyManager.EXTRA_STATE);
  String incomingNumber = intent.getExtras().getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
  if(stateStr.equals(TelephonyManager.EXTRA_STATE_RINGING)){



      Intent intent1=new Intent(context,myService.class);
      intent1.putExtra("incomingNumber",incomingNumber);
      context.startService(intent1);
    }
}

这是我的清单文件

<activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
 </activity>
  <service android:name=".myService" />
  <receiver android:name=".ServiceReceiver"
        android:enabled="true">
  <intent-filter>
        <action android:name="android.intent.action.PHONE_STATE" />
  </intent-filter>
  </receiver>

1 个答案:

答案 0 :(得分:0)

您必须在清单文件中添加以下权限;

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

然后在“设置”中启用应用“权限”中的“电话” - &gt; '应用' - &gt;申请 - &gt; '许可'。

谢谢。