0

画面の明るさを変更するアプリケーションを書いています。画面の明るさを変更し、現在の明るさの値を表示するサードパーティのウィジェットも使用しています。私のプログラムとサードパーティのウィジェットは機能が異なり、両方を使い続けたいと思っています。ただし、私のアプリケーションが画面の明るさを変更すると、サードパーティのウィジェットはこの変更を反映するように自動的に更新されません。だから、私の質問は次のとおりです。

  • アプリケーションでサードパーティのウィジェットを呼び出して更新することはできますか?

  • もしそうなら、これは電話のすべてのウィジェットを更新することによって行われますか、それともその特定のウィジェットを (たとえば、パッケージ名で) ターゲットにすることができますか?

4

1 に答える 1

1

アプリケーションでサードパーティのウィジェットを呼び出して更新することはできますか?

すぐにはできませんし、まったくできない可能性もあります。

もしそうなら、これは電話のすべてのウィジェットを更新することによって行われますか?

私の知る限り、それは不可能です。

または、その特定のウィジェットを (たとえば、パッケージ名で) ターゲットにすることはできますか?

あなたはその問題で選択の余地がないでしょう。

これが機能する唯一の方法は、システムがサードパーティ アプリ ウィジェットの更新に使用するものsendBroadcast()と同じものを呼び出す場合です。他のアプリのIntentを指定する必要があります。また、その特定のエクストラのアプリ ウィジェット ID が何であるかを知る方法はありません。サードパーティがこのブロードキャストで、あなたが提供していないもの (アプリ ウィジェット ID など) を期待している場合、クラッシュする可能性があります。また、このブロードキャストはセキュリティで保護されており、他のアプリから送信できない可能性もあります。私はこれを試したことはありません。ComponentNameAppWidgetProviderIntentAppWidgetProvider

于 2012-06-01T17:05:37.000 に答える