![](/img/trans.png)
[英]How to call another method inside BroadcastReceiver onReceive method in android?
[英]OnReceive call not working Android
我有一個 class ,其代碼如下:
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 function 沒有記錄任何內容?
我怎樣才能解決這個問題? 任何幫助將不勝感激,謝謝。
您必須添加權限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
代替
<uses-permission android:name="android.permission.BOOT_COMPLETED" />
為BOOT_COMPLETED
。 在此處查閱文檔。
據我所見,其他一切都還可以。
ps :如果您想接收來電廣播事件,請使用權限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
並聲明您的意圖過濾器
<receiver
android:name="com.ram.tapdetector.CallManager"
android:enabled="true">
<intent-filter
android:priority="1000">
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
檢查這個不錯的教程更多。
您的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
您是否嘗試過標志:
android:enabled="true"
android:exported="true"
?
這個問題已經過時了,但無論如何我有一個建議。 小心,你有兩倍的權限:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
當您嘗試運行應用程序時,這可能會產生一些錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.