私はAndroid上で利用可能なホーム画面ウィジェットのリストを読もうとしています。 私はインストールされているウィジェットリストの入手方法は?
Intent myIntent = new Intent(Intent.ACTION_MAIN, null);
myIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> appsInfo = MyActivity.getPackageManager().queryIntentActivities(myIntent, 0);
を使用して使用可能なアプリケーションのリストを使用してグリッドを移入し、各ResolveInfoを反復処理よりもすることができます。
利用可能なホーム画面ウィジェットで同じことを行うにはどうすればよいですか?私は画面に触れ続け、表示されているポップアップから 'ウィジェット'を選択して表示される同じリストでグリッドを設定したいと思います。
AppWidgetProviderInfoはどうもありがとうございまし参照するために、抽出することができます!これはそれです! – lorenzoff
これは、いつかandroid.os.TransactionTooLargeExceptionをスローします。私はなぜうまくいかないのですか? –
@Bobbobbington:デバイスに多くの 'AppWidgetProviders'がある場合、それは起こります。プロセスからのすべての同時IPC操作には1MBの制限があります。したがって、 'getInstalledProviders()'の結果が1MBを超えると、この例外が発生します。 'getInstalledProviders()'リストがもっと小さくても、あなたのプロセス内の他のIPCが実行されている間に呼び出された場合(そして1MBの制限の一部を消費する場合)、この例外が発生します。 – CommonsWare