我正在開發一個Android項目,我正在一個擴展BroadcastReceiver的類中註冊一個廣播接收器,它接收ACTION_POWER_CONNECTED
,ACTION_POWER_DISCONNECTED
和ACTION_SCREEN_OFF
的意圖。檢查電源是否連接android
當接收到這些不同的意圖時,它會調用另一個類中的函數,這個類擴展了Service
。
當接收到ACTION_POWER_CONNECTED
它也要求一個名爲isPowerConnected
函數,應該檢查電源是否接通,如果沒有它,然後使激活鎖定。
我遇到的問題是,當我執行isPowerConnected
功能似乎工作第一次,但隨後它接收到每個其他時間:
android.content.ReceiverCallNotAllowedException:IntentReceiver 部件不準註冊以接收意圖。
我不知道如何解決這個問題。以下是isPowerConnected的代碼。
public boolean isPowerConnected()
{
int pluggedIn = -1;
try
{
Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
pluggedIn = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
}
catch (Exception ex)
{
Log.e("IsPowerConnected", ex.toString());
}
return pluggedIn == BatteryManager.BATTERY_PLUGGED_AC || pluggedIn == BatteryManager.BATTERY_PLUGGED_USB;
}
感謝您提供任何幫助。
如果您被告知您剛接通電源,爲什麼要檢查是否再次接通電源?您也可以註冊「ACTION_POWER_DISCONNECTED」並自行管理狀態 –