WakeLock nicht funktioniert

Habe ich ein wake-Sperre einrichten, so dass ich kann noch den Ton hören, wenn der Bildschirm mal aus oder ich drücken Sie die screen-lock-Taste. Von dem, was ich verstehen kann, durch das Lesen online ist, dass ich brauche nur ein partial wake lock. Hier ist der code, aber es funktioniert nicht. Kein logcat Fehler

package com.androidsleepmachine.gamble;

import android.app.Activity;   
import android.content.Context;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.PowerManager;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;

public class Ship extends Activity implements View.OnClickListener {
public static final Integer[] TIME_IN_MINUTES = { 30, 45, 60, 180, 360 };
public MediaPlayer mediaPlayer;
public Handler handler = new Handler();
public Button button2;
public Spinner spinner2;
private PowerManager.WakeLock wl;
//Initialize the activity
@Override
public void onCreate(Bundle savedInstanceState) { 
    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "sleeplock");
    super.onCreate(savedInstanceState);

    setContentView(R.layout.ship);
    button2 = (Button) findViewById(R.id.btn2);
    button2.setOnClickListener(this);
    spinner2 = (Spinner) findViewById(R.id.spinner2);
    ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(this,  
android.R.layout.simple_spinner_item, TIME_IN_MINUTES);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);          
    spinner2.setAdapter(adapter); 
}

//Play the sound and start the timer
private void playSound(int resourceId) {
    //Cleanup any previous sound files
    cleanup();
    //Create a new media player instance and start it
    mediaPlayer = MediaPlayer.create(this, resourceId);
    mediaPlayer.start();
    //Create the timer to stop the sound after x number of milliseconds
    int selectedTime = TIME_IN_MINUTES[spinner2.getSelectedItemPosition()];
    handler.postDelayed(runnable, selectedTime * 60 * 1000);
}

//Handle button callback
@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.btn2:
            wl.acquire();
            playSound(R.raw.ocean_ship);
            break;
    }
}
 protected void onStop()
  {

      cleanup();
      super.onStop();
  }
//Stop the sound and cleanup the media player
public void cleanup() {
    if (mediaPlayer != null) {
        mediaPlayer.stop();
        mediaPlayer.release();
        mediaPlayer = null;
         wl.release();
    }
    //Cancel any previously running tasks
    handler.removeCallbacks(runnable);
}

//Runnable task used by the handler to stop the sound
public Runnable runnable = new Runnable() {
    public void run() {
        cleanup();
    }
};
}
  • Haben Sie die Erlaubnis in-manifest für wake-lock?
  • mögliche Duplikate von Mit einem wake-lock
InformationsquelleAutor user2727048 | 2013-09-29
Schreibe einen Kommentar