0
我已經寫了下面的代碼清單:電池廣播不觸發
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jss.battery">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name=".BatteryReceiver">
<intent-filter >
<action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
</intent-filter>
</receiver>
</application>
</manifest>
以下是接收器代碼:
public class BatteryReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Broadcast received", Toast.LENGTH_LONG).show();}}
但我不是得到任何吐司上應用的推出。這裏是mainactivity代碼:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
}
}
是否有任何代碼錯誤?我在這裏閱讀了許多類似問題的網頁,但沒有一個解決方案可以工也稱https://developer.android.com/training/monitoring-device-state/battery-monitoring.html#DetermineChargeState。測試時間電池電量爲80%+。
其實我想在電池100%時運行一項服務。爲此,我可以檢查電池狀態== BatteryManager.BATTERY_STATUS_FULL;在接收器下,但是如何觸發接收器呢。它是否需要清單中的Action_Battery_Changed? – Panache
@Panache:「實際上我想在電池充滿時運行服務」 - 類似的解決方案是在設備充電時執行您的工作。你可以通過JobScheduler輕鬆完成。 「它是否需要清單中的Action_Battery_Changed」 - 您無法通過清單中註冊的接收器接收到「ACTION_BATTERY_CHANGED」廣播。您的應用找不到電池達到100%充電的好方法。 – CommonsWare
即使此清單中的 也不會觸發收件人 –
Panache