2016-12-26 20 views
0

わかりやすくするためにすべてを消去しました。私の情報要求を簡素化する予定です: モバイルがスリープ状態になっているとき、またはアプリケーションがフォアグラウンドにないときに、モバイルのウェアからのメッセージを受信するのに最適な方法は何ですか?Android Wearウェイクモバイル

これらの状況のいずれにおいても、磨耗からモバイルにメッセージを送信しても、モバイルはメッセージを受信または処理しません。私はどちらが分からない。

次読んだことがある場合: 1)部分的wakelocksを - 私は本当にCPUに保存しておきたいいけない良いん目を覚まし 2)ハンドラ 3)broadcastreceiver 4私はまさに私がすべきかわからない

)サービスアプリがフォアグラウンドおよび/またはスリープ状態にないときに、自分のアプリでメッセージを処理するために行います。

スリープ中にonMessageReceieved()が処理する必要がある場合、またはアプリケーションがフォアグラウンドにない場合、私には私のアプリに表示されているものに基づいてはいけないと思っています。

また、私はリスナーサービスの代わりにライブリスナーを使用しています。これは私の問題ですか?代わりにウェアラブルリストサービスクラスに切り替えると、私の問題を解決して正しく動作するでしょうか? 私はこれを行う場合、私はこの

@Override 
public void onConnected(Bundle connectionHint) { 
    if (Log.isLoggable(TAG, Log.DEBUG)) { 
     Log.d(TAG, "Connected to Google Api Service"); 
    } 
    Wearable.MessageApi.addListener(mGoogleApiClient, this); 
} 

代わりの操作を行います。

public class DataLayerListenerService extends WearableListenerService{ 

をし、そこにすべての私のコードを配置し、これを実行します。

<service android:name=".DataLayerListenerService"> 
    <intent-filter> 
     <action android:name="com.google.android.gms.wearable.DATA_CHANGED" /> 
     <data android:scheme="wear" android:host="*" 
      android:path="/start-activity" /> 
    </intent-filter> 
</service> 

それが私の受けないを解決するにフォアグラウンドにいないときや電話がスリープしているときのメッセージの問題?この意図はバックグラウンドで実行されるサービスとして機能するからです。

答えて

0

keeping the CPU onなど、使用できるさまざまなアプローチについて説明したKeeping the Device Awakeにチェックを入れたい場合があります。前述のように

あなたは、デバイスがスリープ状態になる前に、いくつかの作業を完了するために、CPUの稼働を維持する必要がある場合は、ウェイクロックと呼ばれるPowerManagerシステムサービス機能を使用することができます。ウェイクロックにより、アプリケーションはホストデバイスの電源状態を制御できます。

documentationのウェイクロックの使用に関するヒントと情報があります。

+0

私はあなたの答えをありがとう、私はそれを試み、CPUを目覚めさせるために部分的なwakelockを使用しようとしました。それは成功しなかった。私はこの機能を5〜10分ごとに使いたいと思っています。私は昨日wakelocksでより多くの読書をし、これを試みた。 –

0

WearableListenerServiceを拡張して、マニフェストにサービスを追加するクラスを使用すると、電話がオフのときに作業できるようになりました。今すぐ実装し、メイン画面のデータを更新するメインフィードに対話する必要があります

関連する問題