バッテリの充電が満杯になったときに通知としてサウンドを再生します。レシーバクラスがACTION_BATTERY_CHANGEDを認識しません
私の受信機のクラス私は「電源が接続されました」と「電源が切断されました」という2つの通知を書きました。
しかし、受信者はACTION_BATTERY_CHANGEDを認識しません。私は多くを検索し、プログラムで登録する必要があることを知りました。
問題は、アクティビティなしで登録する必要があることです。私のプログラムが動作しなくても "Battery_Fully_charged"に通知したいからです。
私の受信機( "MyReceiver.class")にこのようなものを登録するにはどうしたらいいですか?
ここに私が見つけたサンプルコードがあります。しかし、私は活動なしでそれをしたい。
public class Main extends Activity {
private TextView batteryTxt;
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context ctxt, Intent intent) {
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
batteryTxt.setText(String.valueOf(level) + "%");
}
};
@Override
public void onCreate(Bundle b) {
super.onCreate(b);
setContentView(R.layout.main);
batteryTxt = (TextView) this.findViewById(R.id.batteryTxt);
this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
}
編集: サービスとBroadcaseレシーバーの違いは何ですか?私は、サービスを試してみましたが、それでもdocumentationから任意の結果
アクティビティの代わりにサービスを使用します。注:Androidはこれのような暗黙の意図を取り除いているので、Android Nでは動作しない可能性があります。 –
@Eugen Pechanecもちろん、私はServiceを使用しましたが、それでも動作しません。いくつかの例を投稿できますか? –
ここに「もちろん」というものはありません。どうすれば知っていますか?あなたが試したことを投稿したら、私たちは繰り返しませんか? –