0

画面がオフの場合にアクティビティをウェイクさせるために、このコードを書きました。

private PowerManager mPM;
private PowerManager.WakeLock mPartialWakeLock;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

//some code

mPM = (PowerManager) getActivity().getSystemService(Context.POWER_SERVICE);
if (mPM == null) {
Log.e(TAG, "PowerManager is null");
}

try {
mPartialWakeLock = mPM.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK , "LOG");
    mPartialWakeLock.aquire();
}
catch (Exception e) {Log.i(TAG, "mPM.newWakeLock() EXCEPTION="+e.toString());}

問題は、画面がオフのとき、アプリケーションが一時停止していることです。

4

3 に答える 3

0

アクティビティが呼び出されている間に画面のロックを解除したい場合は、これを試してください

Window wind;
wind = this.getWindow();
wind.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD);
wind.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
wind.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);

画面ロックを防ぐ場合は、次のコードをxmlファイルに書き込むだけで、画面がロックされなくなります

android:keepScreenOn="true"
于 2013-06-21T11:34:01.247 に答える
0

Application クラスを拡張して wake lock の取得を試みます。これは、アプリケーション全体のロックが取得されることを意味します: コード:

package com.ballytech.RemoteGamingClient.UserView;

import android.app.Application;
import android.content.Intent;
import android.os.PowerManager;
import android.provider.Settings;

/**
 * @author SDurai
 * 
 */
public class RCGApplication extends Application 
{
    private static final String TAG = RCGApplication.class.getSimpleName();
    private PowerManager.WakeLock mWakeLock = null;

    @Override
    public void onCreate() {
        super.onCreate();

        final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
        mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
        mWakeLock.acquire();
    }

    @Override
    public void onTerminate() {
        if (mWakeLock.isHeld())
            mWakeLock.release();
        super.onTerminate();
    }
}

他にご不明な点がございましたらお知らせください。お手伝いします!

于 2014-06-26T11:52:23.853 に答える