2017-04-07 86 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