ここでは、画面がオンかどうかを判断しようとしていますが、電源ロック/アンロックボタンを押しても機能していないようです。アプリケーションはエラーなしで動作しますが、if-elseのコードは有効ではないようです。 編集 今のところコード作業(ありがとうオルガン)ですが、メディアプレイヤーの再生は停止せず、毎回オン/オフ画面の新しいメディアプレーヤーオブジェクトが作成されます(複数再生)。画面のオン/オフ検出
SCBroadcaster.java
public class SCBroadcaster extends BroadcastReceiver {
PowerManager pm;
MediaPlayer mp;
public static boolean wasScreenOn = true;
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
mp = MediaPlayer.create(arg0, R.raw.gale);
if (arg1.getAction().equals(Intent.ACTION_SCREEN_ON)) {
mp.stop();
mp.release();
Toast.makeText(arg0, "oNONONO", Toast.LENGTH_LONG).show();
} else if (arg1.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
mp.start();
}
}
}
MainActivity.java
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_ON);
BroadcastReceiver bre = new SCBroadcaster();
registerReceiver(bre, filter);
}
protected void onPause() {
super.onPause();
if (SCBroadcaster.wasScreenOn) {
System.out.println("SCREEN TURNED OFF");
} else {
}
}
protected void onResume() {
super.onResume();
if (!SCBroadcaster.wasScreenOn) {
} else {
}
}
}
リンクのコードは正常に動作しますが、停止と解放の方法を使用した後でも、メディアプレイヤーの再生は停止しません。 – dreamer1989