2017-12-28 36 views
0

Ich versuche eine android-app zu bauen, die taste auf einem hintergrund gedrückt und spielt einen klang oder so etwas. Für Demo, versuche ich diese Methodehintergrund taste drücken erkennung

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

zu dieser Klasse

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

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

    } 
} 

Gibt es etwas hinzufügen, die hilfreich sein können? Ich bin neu in Android-Entwicklung und Java.

Antwort

0

In Touch-Android-Handys gibt es keine Tastaturhardware. Bitte geben Sie an, welche Taste gedrückt werden soll.

Edited:

Fügen Sie die folgende Erlaubnis in Manifest fie:

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

und folgende Methoden außer Kraft setzen:

//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

Power-Taste gedrückt 3-4 mal präziser zu sein. –

+0

Sorry für die Frage einfache Sache, aber können Sie mir helfen onKeyDown() im Hintergrund ausführen, wenn App minimiert oder nicht ausgeführt wird? –