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