我正在尝试编写一个代码,每当用户按下电源按钮并将手机从睡眠状态恢复时,如果应用程序正在运行,它应播放声音,否则没有任何反应。
我想我需要一个广播接收器来检查电源:按下ON而不是电源:关闭并播放声音。稍后将与异步任务相关联。
我如何达到上述要求。请给我一些方法。
我不想使用服务,因为即使应用程序没有运行它也会继续运行。
我希望它只在应用程序在后台运行时运行,因此BroadCast Receiver。
我是安卓机器人
请帮助。
在此先感谢。
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class MainActivity extends Activity {
MediaPlayer mp3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mp3=MediaPlayer.create(this, R.raw.sound);
}
public class YourReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
// do what you want when the screen is turned back on
mp3.start();
}
}
}
答案 0 :(得分:1)
您可以在清单文件中注册BroadcastReceiver
,以便在按下电源按钮时进行监听。这将告诉系统您有一个名为your.package.YourReceiver
的班级,当按下电源按钮以打开屏幕 时,他想要做某事。
<receiver android:name="your.package.YourReceiver">
<intent-filter>
<action android:name="android.intent.action.SCREEN_ON"></action>
</intent-filter>
</receiver>
然后你必须创建一个类来处理事件。这是收到广播时将运行的代码。
public class YourReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
// do what you want when the screen is turned back on
}
}
注意... 强>
如果您需要按下电源按钮,可以将屏幕关闭,请在清单中使用此按钮。
<action android:name="android.intent.action.SCREEN_OFF"></action>
您可以使用其中一个或两个。