在这里我试图确定屏幕是否打开但是当按下电源锁定/解锁按钮时它似乎不起作用.应用程序没有错误,但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 { } }
}
解决方法
Intent.ACTION_SCREEN_OFF和ACTION_SCREEN_ON签出上述广播注册.
here你可以找到一个很好的例子.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。