0

Ich arbeite an einer App, in der "wenn meine App läuft und Benutzer drückt Power-Taste", um das Telefon zu sperren, dann vor dem Sperren sollte es einen Ton zu spielen.Abspielen Sound auf Power-Taste gedrückt in Android

ich gesucht haben, wie diese auf folgenden Links auf SO zu tun, aber nicht bekommen jede Arbeitslösung: Want to Access Power Button events in android

Disable Screen Lock(Power) Button in Android

Override Power button just like Home button

How to hook into the Power button in Android?

I don Ich möchte nicht lange mit dem Ein-/Ausschalter arbeiten. Ich möchte nur meine eigene Musik wiedergeben, wenn die App/Aktivität ausgeführt wird & Benutzer drückt die Netztaste, um das Telefon zu sperren.

Hier ist mein Code, was ich bisher getan habe:

AndroidManifest.xml

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

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

</application> 

MainActivity.java

package com.example.lockunlocksound; 
import android.app.Activity; 
import android.content.BroadcastReceiver; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.KeyEvent; 

public class MainActivity extends Activity { 

static MediaPlayer mp; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 


@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 

    if (keyCode == KeyEvent.KEYCODE_POWER) { 
     // Do something here... 
     mp= MediaPlayer.create(this, R.raw.click123); 
     mp.start(); 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 
} 

Einige Posts, die ich oben erwähnt habe, behauptet, damit zu arbeiten, aber ich bekomme nicht die gewünschte Ausgabe. Wo bin ich falsch? Mein Telefon wird gerade gesperrt, ohne Ton zu hören. schlagen Sie mir vor, wie sollte ich weitermachen, um dies zu lösen?

Antwort

0

Um das zu erreichen, dass Sie Empfänger zu schaffen, der ausgelöst wird, wenn der Benutzer Power-Taste drückt und Musik spielen, wenn dieser Empfänger ausgelöst wird:

public class MyBroadCastReciever extends BroadcastReceiver { 

    MediaPlayer mediaPlayer = null; 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     mediaPlayer = MediaPlayer.create(context, R.raw.click123); 
     mediaPlayer.start(); 
    } 
} 

eine reciever Instantiate und es innerhalb onCreate Ihrer MainActivity registrieren:

MyBroadCastReciever myBroadCastReciever = new MyBroadCastReciever(); 
IntentFilter screenStateFilter = new IntentFilter(); 
screenStateFilter.addAction(Intent.ACTION_SCREEN_OFF); 
registerReceiver(myBroadCastReciever, screenStateFilter); 

Und vergessen sie nicht, es in onDestroy Ihrer MainActivity abzumelden:

unregisterReceiver(myBroadCastReciever); 
+0

Danke .. es funktioniert jetzt .. !! –