2017-12-28 39 views
0

バックグラウンドで押されたボタンを検出してサウンドなどを再生するアンドロイドアプリを構築しようとしています。デモのために、私はこのクラスバックグラウンドボタンプレス検出

public class RSSPullService extends IntentService{ 
    public RSSPullService(){ 
     super("Nevermind me"); 
    } 

    @Override 
    protected void onHandleIntent(@Nullable Intent intent) { 

    } 
} 

にこの方法

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    final MediaPlayer abc = MediaPlayer.create(this, R.raw.abc); 
    if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) { 
     abc.start(); 
    } 
    return super.onKeyDown(keyCode, event); 
} 

を追加しようとしています役に立つことができるものはありますか?私はアンドロイド開発とJavaに新しいです。

答えて

0

タッチアンドロイド携帯電話では、キーボードのハードウェアはありません。どのボタンを押すかを指定してください。

編集:

<uses-permission android:name="android.permission.PREVENT_POWER_KEY" /> 

をし、次のメソッドをオーバーライドします:

はマニフェストFIEに、次の権限を追加し

//To capture any short click of button 
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
if (keyCode == KeyEvent.KEYCODE_POWER) { 
    // this is method which detect press even of button 
    event.startTracking(); // Needed to track long presses 
    return true; 
} 
    return super.onKeyDown(keyCode, event); 
} 


//To capture long press of power button 
@Override 
public boolean onKeyLongPress(int keyCode, KeyEvent event) { 
if (keyCode == KeyEvent.KEYCODE_POWER) { 
    // Here we can detect long press of power button 
    return true; 
} 
    return super.onKeyLongPress(keyCode, event); 
} 
+0

電源ボタンは、より具体的には3〜4回押します。 –

+0

シンプルなことを申し訳ありませんが、アプリが最小化されているか実行されていないときにバックグラウンドでonKeyDown()を実行するのを手伝ってもらえますか? –