web-dev-qa-db-ja.com

アプリからウィジェットをAndroidホーム画面に追加する方法は?

ユーザーが自分のアプリにそうするように指示したときに、ウィジェット(テキストボックスのみ)をユーザーの電話のホーム画面に追加できるアプリケーションを作成しています。どうすればこのようなことができますか?

アプリウィジェットを追加できることはわかっていますが、さらに追加してみませんか?

20
Adam Arold

アプリからウィジェットをホーム画面に配置することはできません。アプリのウィジェットをホーム画面に追加できるのは、ホーム画面だけです。

同様のリンク link1link2link

ただし、ウィジェットピッカーからウィジェットを選択するようユーザーに提供できます。

    Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
    pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetID);
    startActivityForResult(pickIntent, KEY_CODE);
25
stinepike

これはずっと前に回答されましたが、誰かがこの質問に出くわした場合に備えて、最新の回答を提供する必要があると思いました。

Android O(API 26))以降、アプリからウィジェットをユーザーのランチャーに固定できるようになりました。

アプリのAndroidManifestファイルにウィジェットを作成し、 AppWidgetManager を使用してウィジェットをランチャーに固定するように要求します。この機能をサポートするかどうかはランチャー次第であることに注意してください。そのため、ピン留めを要求する前に、AppWidgetManagerの isRequestPinAppWidgetSupported() メソッドを呼び出す必要があります。

以下は、Googleが提供する詳細なドキュメントです: https://developer.Android.com/preview/features/pinning-shortcuts-widgets.html#widgets

お役に立てれば!

編集:この回答を投稿してから、ドキュメントページが変更されたようです。以下は、ウィジェットをランチャーに固定する方法のコード例を示すより役立つリンクです。 https://developer.Android.com/guide/topics/appwidgets/#Pinning

9
DalvikDroid

AFAIKのデフォルトのランチャーアプリはこれをサポートしていません。その理由は、ユーザーが自分ですべてをホーム画面に配置する必要があるためです。アプリケーションからウィジェットを配置できるようにすると、アプリが「便利な」ウィジェットを使用してユーザーの家に「スパム」を仕掛ける可能性があります。

2