ユーザーが自分のアプリにそうするように指示したときに、ウィジェット(テキストボックスのみ)をユーザーの電話のホーム画面に追加できるアプリケーションを作成しています。どうすればこのようなことができますか?
アプリウィジェットを追加できることはわかっていますが、さらに追加してみませんか?
アプリからウィジェットをホーム画面に配置することはできません。アプリのウィジェットをホーム画面に追加できるのは、ホーム画面だけです。
ただし、ウィジェットピッカーからウィジェットを選択するようユーザーに提供できます。
Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetID);
startActivityForResult(pickIntent, KEY_CODE);
これはずっと前に回答されましたが、誰かがこの質問に出くわした場合に備えて、最新の回答を提供する必要があると思いました。
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
AFAIKのデフォルトのランチャーアプリはこれをサポートしていません。その理由は、ユーザーが自分ですべてをホーム画面に配置する必要があるためです。アプリケーションからウィジェットを配置できるようにすると、アプリが「便利な」ウィジェットを使用してユーザーの家に「スパム」を仕掛ける可能性があります。