在这里我试图确定屏幕是否打开但是当按下电源锁定/解锁按钮时它似乎不起作用.应用程序没有错误,但if-else中的代码似乎没有效果.
编辑
现在代码工作(感谢Olgun)但媒体播放器播放并没有停止,每次打开/关闭屏幕都会创建新的媒体播放器对象(多次播放).
编辑
现在代码工作(感谢Olgun)但媒体播放器播放并没有停止,每次打开/关闭屏幕都会创建新的媒体播放器对象(多次播放).
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 { } }
}