所以我的问题是三星Note 3手机(三星s3和诺基亚正常工作)。我使用广播接收器监听屏幕开启和关闭事件,当我的应用程序运行时(即使它在后台运行),一切正常。我收到屏幕事件就好了。但是,如果我关闭应用程序,我的屏幕事件将停止在Note 3手机上启动(但它们仍适用于S3和诺基亚)。
在androidmanifest.xml中我注册了这样的接收器:
<receiver
android:name=".lockScreenReceiver"
android:enabled="true"
android:exported="false" >
<intent-filter android:priority="2147483647">
<action android:name="android.intent.action.SCREEN_ON" />
<action android:name="android.intent.action.SCREEN_OFF" />
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
在Broadcastreceiver的java文件/中有这段代码:
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
// Log event screen off.
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)){
// Log event screen on.
}
}
任何人都知道可能出现什么问题?
答案 0 :(得分:1)
尝试在活动中设置过滤器并注册接收器,而不是在清单中执行此操作:
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
BroadcastReceiver mReceiver = new lockScreenReceiver();
registerReceiver(mReceiver, filter);