2017-04-07 57 views
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%+。

回答

0

引用the documentation,此广播“将在ACTION_BATTERY_LOW之后发送,一旦电池恢复到正常状态”。在你的情况下,电池已经达到了80%,这已经超过了低/好的分界线(我认为这大约是15%,但是可能因硬件或操作系统版本而异)。

+0

其实我想在电池100%时运行一项服务。为此,我可以检查电池状态== BatteryManager.BATTERY_STATUS_FULL;在接收器下,但是如何触发接收器呢。它是否需要清单中的Action_Battery_Changed? – Panache

+0

@Panache:“实际上我想在电池充满时运行服务” - 类似的解决方案是在设备充电时执行您的工作。你可以通过JobScheduler轻松完成。 “它是否需要清单中的Action_Battery_Changed” - 您无法通过清单中注册的接收器接收到“ACTION_BATTERY_CHANGED”广播。您的应用找不到电池达到100%充电的好方法。 – CommonsWare

+0

即使此清单中的也不会触发收件人 – Panache