2016-06-17 12 views
0

何とか私のACTION_POWER_CONNECTEDとACTION_POWER_DISCONNECTEDは充電器からネクサス6を抜き差しすると起動しませんでした。Android:イベントACTION_POWER_CONNECTEDとACTION_POWER_DISCONNECTEDがBroadcastReceiverに送信されていません

たManifest.xml:

<application 
    android:name="com.xxx.xxx.xxx" 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme.NoActionBar"> 

    <receiver android:name=".PowerReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/> 
      <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/> 
     </intent-filter> 
    </receiver> 

PowerReceiver.java

public class PowerReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 
    Toast.makeText(context, "PowerReceiver fired", Toast.LENGTH_SHORT).show(); 
} 
} 

ありがとうございました!

答えて

2

3時間の掘削の後、問題は電話機を再起動するだけで最終的に修正されました。 しかし私は別の問題を発見し、私は他の人を助けるためにここに入れます。 アンドロイドトレーニングサイトでコード: Monitor Changes in Charging State

public void onReceive(Context context, Intent intent) { 
    int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1); 
    boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || 
         status == BatteryManager.BATTERY_STATUS_FULL; 

    int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); 
    boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB; 
    boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC; 
} 

isChargingは、デバイスが接続された場合でも、常にfalseである。これは、次のコードで固定することができます。

if(intent.getAction() == Intent.ACTION_POWER_CONNECTED) { 
     Toast.makeText(context, "isCharging: " + true, Toast.LENGTH_LONG).show(); 
    } else if(intent.getAction() == Intent.ACTION_POWER_DISCONNECTED){ 
     Toast.makeText(context, "isCharging: " + false, Toast.LENGTH_LONG).show(); 
    } 
関連する問題