2012-05-09 5 views
2

私は、通知APIを使用してRSSスマート拡張アプリケーションを開発しています。 スマートエクステンションのアクティブ/非アクティブステータス(SmartWatchアプリで自分のRSSスマートエクステンションをクリックしたときの最初のチェックボックス)を取得する方法を知りたいと思います。Androidスマートウォッチ拡張機能が無効かどうかを確認するにはどうすればよいですか?

NotificationAPIサンプルでは、​​追加のチェックボックス設定を使用して通知を生成するデータをダウンロードするサービスを開始するかどうかを指定しますが、サブメニューに移動してデータのダウンロードを有効にする必要はありません。ユーザーが自分のRSSスマートエクステンションをアクティブにした場合、彼はすでにRSSに新しいアイテムがあるかどうかを彼に通知すると予想しています。

スマート拡張機能がliveware/smartwatchアプリケーション(onRegisterResult)に正しく追加されたことを知るコールバックがありますが、スマート拡張機能が実際にアクティブかどうかを知るコールバックが見つかりませんでした。

ありがとうございます!

答えて

5

スマート拡張SDKは、上のいくつかの例を与えるために提供されてきたのSampleNotificationExtension:にデータを読み込む/ライブウェア・マネージャ・アプリケーションに存在する通知データベースから/削除/更新/追加する方法

  • (スマートエクステンションAPIのハブである)

  • ユーザーがSmartWatchで通知を開くとどのように応答するかアクションボタンを押します。

この拡張機能の例では、Notificationデータベースに10秒ごとに通知するサービスがあり、SmartWatchデバイスに表示されます。プリファレンス・アクティビティーのオン/オフ設定は、データベースに給電するループを開始および停止するためのものです。

RSSフィードを購読したいと思っています。新しい投稿が届いたら、SmartWatchに伝えたいと思っています。この例のようにサービスを開始する必要があるかもしれません。時計が電話に接続されている限り、おそらくサービスを実行する必要があります。

@Override 
protected boolean keepRunningWhenConnected() { 
    return true; 
} 

SmartExtensionユーティリティクラスを使用すると、自動的に拡張が登録され、サービスが開始されます。サンプルエクステンションでは、エクステンションが登録された後、ユーザーがプリファレンスを介してエクステンションをアクティブ化したかどうかを確認するためのチェックが行われます。

@Override 
public void onRegisterResult(boolean result) { 
    /.../ 
    boolean isActive = prefs.getBoolean(
      getString(R.string.preference_key_is_active), false); 
    if (isActive) { 
     startAddData(); 
    } 
} 

必要に応じてこれを保存できますが、必須ではありません。前に述べたように、データの供給を開始および停止するためのものです。とにかく、登録後にRSSチェックを開始することができます。

ユーザーが自分のRSSスマートエクステンションをアクティブにすると、RSSに新しいアイテムがいくつかあるかどうかを通知することができます。

通知サービスが開始されると、通知データベースにあるものとRSSフィードから供給されるもののデルタを確認できます。

よろしくお願いします。

+0

私はExtensionのベースとしてSampleNotificationExtensionを使用しましたが、これは素晴らしい方法です(多くのサンプルをそこに置くことに感謝します)。時計がまだ電話に接続されている場合でも、ユーザーが内線を無効にした場合、サービスを停止したい(アラームを解除する)。私はSampleNotificationExtensionで同じ振る舞いを再現することができました。拡張機能がアクティブかどうかを知る方法はありますか? – galex

+1

残念ながら、すべての内線のメイン設定画面での有効化/無効化の設定を内線で読み取ることはできません。 SmartWatchホストアプリケーションに格納され、管理されます。私の答えに記載されている "isActive"プリファレンスはSampleNotificationExtensionのローカルです。したがって、基本的に、ユーザーがあなたの内線を無効にしたかどうかを知ることはできません。申し訳ありませんが、最初からこれを伝えたはずです。 – Jerker

+0

これは、拡張受信者に送信されるインテントとして、SDKの将来のバージョンで提供されますか? – galex

関連する問題