tại đây tôi đang cố gắng xác định xem màn hình có bật hay không nhưng dường như không hoạt động khi nhấn nút khóa/mở khóa nguồn. Ứng dụng hoạt động không có lỗi nhưng mã trong if-else doesnt dường như không có hiệu lực. Đã chỉnh sửa bây giờ công việc mã (cảm ơn Olgun) nhưng phát lại trình phát đa phương tiện không dừng và mỗi lần bật/tắt màn hình objct mediaplayer mới được tạo (nhiều lần phát lại).Phát hiện bật/tắt màn hình
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 {
}
}
}
mã trong liên kết hoạt động tốt nhưng ngay cả sau khi sử dụng các phương pháp dừng và phát, các phát lại mediaplayer không dừng lại – dreamer1989