2011-06-27 30 views
2

私の銀河の電源の接続と接続解除の両方を聞いています。電源が接続されているか接続されていないリスナー

私は2つのBroadCastReceiversを持っています.1つは接続用、もう1つは切断用です。

実装しようとすると、電源ケーブルを外しても、接続されたデータしか取得できません。

インテントが送信されますが、間違っているように見えます。

public class PowerConnectedBCReceiver extends BroadcastReceiver 
{ 
@Override 
public void onReceive(Context context, Intent intent) 
{ 
    Toast.makeText(context, "Phone was connected to power" , Toast.LENGTH_LONG).show(); 
    Intent tIntent = new Intent("com.neglected.POWER_CONNECTED"); 
    context.sendBroadcast(tIntent); 
} 

}

ブロードキャストCを切断:

 //  Handle Power On 
    PowerConnectedBCReceiver myPowerConnectedBCReceiver = new PowerConnectedBCReceiver(); 
    IntentFilter intentPowerOnFilter = new IntentFilter(); 
    intentPowerOnFilter.addAction("android.intent.action.ACTION_POWER_CONNECTED"); 
    registerReceiver(myPowerConnectedBCReceiver, intentPowerOnFilter); 

    BroadcastReceiver PowerConnectedReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      showToast("connected"); 
     } 
    }; 



    //  Handle Power Off 
    PowerConnectedBCReceiver myPowerDisonnectedBCReceiver = new PowerConnectedBCReceiver(); 
    IntentFilter intentPowerDisconnectedOnFilter = new IntentFilter(); 
    intentPowerDisconnectedOnFilter.addAction("android.intent.action.ACTION_POWER_DISCONNECTED"); 
    registerReceiver(myPowerDisonnectedBCReceiver, intentPowerDisconnectedOnFilter); 

    BroadcastReceiver PowerDisconnectedReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      showToast("disconnected"); 
     } 
    }; 

 registerReceiver(PowerDisconnectedReceiver, new IntentFilter("com.neglected.POWER_DISCONNECTED")); 
    registerReceiver(PowerConnectedReceiver, new IntentFilter("com.neglected.POWER_CONNECTED")); 

ブロードキャスト接続コードが作業を行うためにBCの両方を登録:ここ

アクティビティコードでありますODE:

public class PowerDisconnectedBCReceiver extends BroadcastReceiver 
{ 
@Override 
public void onReceive(Context context, Intent intent) 
{ 

    Toast.makeText(context, "Phone was disconnected from power" , Toast.LENGTH_LONG).show(); 
    Intent tIntent = new Intent("com.neglected.POWER_DISCONNECTED"); 
    context.sendBroadcast(tIntent); 
} 

}

は、コードが間違っていますか? 両方の操作を聞くことはできますか?別に? CONNNECTEDアクションで余分に送信されていることはありませんか?

答えて

1

私の放送のインスタンス化中にエラーが発生しました。私が代わりに誤って解決PowerDisconnectedBCReceiver

問題のPowerConnectedBCReceiverを使用しました。

1

あなたの最後の2つのクラス(* BCReeivers)がやっていることがわかりません。あなたの最初のコードブロックは大丈夫です。それが重要であれば、囲みアクティビティのライフサイクルに制限されます。

ギャラクシーSでは、これらのインテントに頼ることができない場合があります。特に、Verizon Fascinate(ギャラクシーSのバージョン)が非常にバグであることが判明しました。ここを参照してください:http://devblog.bu.mp/how-to-ddos-yourself

+0

おかげさまで、私がしたいのは、デバッグのためのToastです。ありがとう。そのアイデアは、自分のアクティビティにチェックボックスがあり、状態が変更されると、自分のサービスのブロードキャストリスナーを登録/登録解除する必要があるということです。 *私はそれを私のサービスにプッシュする前に、それがアクティビティで動作するのを見たいと思っています。 – Saariko

+0

リンクmichalをありがとう。私はそれを読んで、私の "悪い"振る舞いは、私が電話の接続と切断の両方でCONNECTEDイベントを取得したということだけです。私は見続けるだろう。再度、感謝します – Saariko

関連する問題