我有一个带有意图过滤器的广播接收器来捕获 android.intent.action.NEW_OUTGOING_CALL。
我阅读了许多关于处理 NEW_OUTGOING_CALL 意图的教程并在此处回答,但我无法使这件事起作用。我的目标是记录我的 Broadcastreceiver 收到的意图 android.intent.action.NEW_OUTGOING_CALL。我无法让这个简单的事情奏效。
这是我的代码:
清单.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.vannus.broadcasttest">
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".TestReceiver">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
</application>
</manifest>
这是广播接收器的代码(TestReceiver.java)
package net.vannus.broadcasttest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class TestReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
{
Log.w("###TEST###",intent.getAction());
}
}
该项目还包含一个没有任何功能的空 MainActivity。执行项目的主要活动是启动,但是当我尝试拨打或接听电话时没有写入日志。我在模拟器(Android 7)和摩托罗拉 G4 手机(Android 6.0)上测试了代码,但 logcat 上没有任何记录。我正在使用 Android Studio 2.3
我究竟做错了什么?
谢谢
瓦努斯