我正在尝试接收各种意图来审核手机上的使用活动。我正在使用AndroidStudio,这是我的AndroidManifest.xml
:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tomm.vpandroid2" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_MMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.CAMERA" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".SettingsActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name=".GlobalEventsReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="android.intent.action.BROADCAST" />
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
<action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" />
<data android:mimeType="application/vnd.wap.mms-message" />
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
<action android:name="android.intent.action.PHONE_STATE" />
<action android:name="android.intent.action.SCREEN_ON" />
<action android:name="android.hardware.action.NEW_PICTURE" />
<action android:name="android.hardware.action.NEW_VIDEO" />
</intent-filter>
</receiver>
</application>
</manifest>
这是GlobalReceiver:
package com.tomm.vpandroid2;
public class GlobalEventsReceiver extends BroadcastReceiver {
private final String TAG = "viprol.receiver";
public GlobalEventsReceiver() {
Log.i(TAG, "global receiver constructed");
}
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "received action");
}
}
问题是ctor和onReceive()
方法永远不会被调用(即使我在它们上面设置断点并进行调试)。
我正在使用OnePlusOne并已禁用此应用程序的PrivateGuard。不知道还有什么可以尝试?
答案 0 :(得分:1)
首先,您只会匹配MIME类型为application/vnd.wap.mms-message
的广播。据推测,你想在同一个<intent-filter>
的单独<receiver>
中推出它以及相关的操作,尽管近年来我还没有使用过很多WAP。
其次,我不知道有一个名为BROADCAST
的广播,就像你的第一个<action>
一样。
第三,IIRC,你不能从一个清单注册的接收者列出SCREEN_ON
,而只能从通过registerReceiver()
注册的接收者列出。