我有一个类,其代码如下:
public class CallManager extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
tManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
Log.i("onReceive","here");
}
}
清单上的权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.PROCESS_INCOMING_CALLS" />
<uses-permission android:name="android.permission.BOOT_COMPLETED" />
接收者意图过滤器:
<receiver android:name="com.ram.tapdetector.CallManager">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
由于某种原因,onReceive函数没有记录任何内容?
我怎样才能解决这个问题?任何帮助,将不胜感激,谢谢。
最佳答案
您的AndroidManifest.xml文件中需要以下内容:
1)在您的元素中:
`<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />`
2)在您的元素中(确保对BroadcastReceiver使用完全限定的[或相对]类名):
<receiver android:name="com.example.CallManager">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
`
在MyBroadcastReceiver.java中:
` package com.example;
public class CallManager extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
tManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
Log.i("onReceive","here");
}
}`
如果您使用的是HTC mobile,
随着
`<action android:name="android.intent.action.BOOT_COMPLETED" /> `
也用
`<action android:name="android.intent.action.QUICKBOOT_POWERON" />`
HTC设备似乎没有赶上BOOT_COMPLETED
关于java - Android的OnReceive通话不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23042450/