2017-01-17 7 views
3

私はウォッチフェイスで加速度計のデータを収集しています。デバイスがアンビエントモードに入ると、CPUはスリープ状態になります。アンドロイドウェアで部分的なウェークロックが機能しない

私は作成時にpartial_wakelockを追加しようとしましたが、それでも動作しません。完全なwakelockはうまくいきますが、保護機能が動作するような周囲モードがあるという利点があります。

何が間違っていますか?

 powerManager = (PowerManager) getSystemService(POWER_SERVICE); 
     //wl = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "awake"); 

     wl = powerManager.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "MyWakelockTag"); 

コメント行は機能しません。

私は加速度計の登録でウォークロックを取得し、それをリリースします。

これは非常にイライラしている問題で、何が間違っているのか分かりません。

答えて

0

breifでは正常です。リラックス。

バッテリーを節約するため、一部のAndroid搭載端末はスリープ状態になり、Bluetoothモードを無効にします。アクティブになるためには、私はちょうどFULL_WAKE_LOCKだけが動作することを発見しました。おそらく、私はボットの権利ですが、これは私の経験です。バッテリーを節約するのに役立つその他のオプションは、Android OSの環境設定でも無効にする必要があります。

0

documentationから、Context.getSystemService()を呼び出して、PowerManagerクラスのインスタンスを取得できます。

あなたはこれを使って試してみたいことがあります。

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 

代わりの

powerManager = (PowerManager) getSystemService(POWER_SERVICE); 

それに加えて、あなたは PARTIAL_WAKE_LOCKACQUIRE_CAUSES_WAKEUPON_AFTER_RELEASEを使用することはできません。

WakeLockを使用するアプリケーションは、アプリケーションのマニフェストの<uses-permission>要素のandroid.permission.WAKE_LOCK許可を要求する必要があります。

+0

ACQUIRE_CAUSES_WAKEUPは、後でテスト用に追加されました。私は前にあなたの方法を試してみましたが、成功しませんでした、私は私のmoto360で試してみましょうこれは私が製造元の周囲モードの実装は、犯人かどうか、それはGoogleの自責です。権限が設定されています。 – user2676748

関連する問題