【发布时间】:2014-04-13 11:56:56
【问题描述】:
我有一个类,代码如下:
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 函数没有记录任何内容?
我该如何解决这个问题?任何帮助将不胜感激,谢谢。
【问题讨论】:
-
我假设您的应用中有
Activity,并且您至少启动过一次? -
是的,我的申请符合所有条件
-
@rohfosho,你和纳什到底想检测什么动作?在上一篇文章中,它说“查看我的手机何时被调用”。
-
是的,当手机接听电话时,应该执行onReceive()函数。 @MikeM。
-
@rohfosho:再想一想——你的应用程序安装在 SD 卡上了吗?如果是这样,它将永远不会收到广播。原因是
BOOT_COMPLETED广播是在SD卡挂载之前发送的。
标签: java android broadcastreceiver function-calls phone-call