2012-05-02 7 views
1

私のアプリに2つのウィジェットを追加しました。しかし、ユーザーが一部のAndroidバージョンでSDカードにアプリケーションを移動すると、ウィジェットは使用できなくなります。プログラムでウィジェットの登録を解除する

解決策として、ウィジェットだけを含む新しい小さなアプリを作成しました。ユーザーはメインアプリをSDカードに移動し、ウィジェットを使用できるように内部ストレージにウィジェットアプリを置くことができます。 2つのメインウィジェットの他に、ウィジェットアプリには2つのウィジェット(合計4つ)があります。これらの2つの特別なウィジェットは、一種のベータウィジェットです。 1つのウィジェットがたくさん使われているのを見たら、それを改善してメインパッケージを移動します。

メインアプリをSDカードに移動していない(またはSDカードからウィジェットを使用できるAndroidバージョンがあります)場合、ユーザーがウィジェットアプリケーションをインストールして2つの追加ウィジェットにアクセスすると問題が発生します。その場合、ユーザーはメインアプリから2回、ウィジェットアプリからもう1回2回、メインウィジェットを2回取得します。

ウィジェットアプリがインストールされていることを検出した場合、メインアプリから2つのウィジェットを無効にします。これは、2つのウィジェットを繰り返すことを避けるためです。

ウィジェットアプリがインストールされている場合、メインアプリからチェックする方法はわかります。私はプログラムでウィジェットを無効にする方法を知りません。それは可能ですか?

答えて

5

PackageManagersetComponentEnabledSetting()を使用してAppWidgetProviderを名前で無効にすると、リストに表示されなくなります。

ユーザーがすでに自分のホーム画面にこれらのアプリウィジェットを追加していても、それらが壊れてしまい、ユーザーが混乱する可能性があります。

+0

ありがとうございます。ウィジェットのonDisabledとonUpdateに設定されているフラグと一緒に使用して、まだ追加されていない場合にのみそれらを無効にします。 –

関連する問題