0

ユーザーが電源オンボタンを押してモバイルをスリープ状態から戻すたびに、アプリが実行されている場合は音が鳴り、それ以外の場合は何も起こらないコードを書き込もうとしていました。

Power:OFFではなくpower:ONが押されて音が鳴るのをチェックする放送受信機が必要だと思います。後で非同期タスクでリレースされます。

上記の要件を達成するにはどうすればよいですか。方法を教えてください。
アプリが実行されていなくても実行され続けるので、サービスを使用したくありません。

また、アプリがバックグラウンドで実行されている場合にのみ実行する必要があるため、BroadCastReceiverを使用します。

私はアンドロイドの初心者です。
助けてください。
前もって感謝します。

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();
        }
    }

}
4

1 に答える 1

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>

どちらか一方または両方を使用できます。

于 2013-02-20T15:06:28.733 に答える