2012-03-09 2 views

答えて

0

スタティックなショートカットが必要ですか?ちょうどプリインストールされたアプリですか? RemoteViewsWidgetは、RemoteViewsのサブクラスである

RemoteViewsWidget views = new RemoteViewsWidget(context, R.layout.your_layout); 

これは私がホーム画面にショートカットどのように見えるかを作成する方法です。コンテキストは、RemoteViewsWidgetクラスで実行されるアクションに使用する必要があります。 RemoteViewsWidgetクラスのメソッドで

は、私が「ショートカット」の画像とテキストを設定します。imageResIdはあなたthumnailとURIのポイントになりたいあなたのレイアウト内のリソースである

setImageViewUri(imageResId, uri); 
setTextViewText(textResId, displayName); 

画像(私は画像ソースのためにローカルに保存されたファイルを使用しました)。 textResIdとdisplayNameに似ています。ここで

setOnClickPendingIntent(layoutViewId, PendingIntent.getActivity(
     context, requestCode, intent, flags)); 

、layoutViewIdがあなたのイメージ図とテキストビューが住んでいる親のレイアウトです。このレイアウトは、それが選択されている意図をトリガーするものです。保留中のインテントは、レイアウトが選択されたときに実行されるものです。コンテキストを記入するだけで、起動するアクティビティのインテントと必要に応じてフラグが設定されます。

あなたはおそらくPackageManagerを使用したい、あなたがそれらを起動するアプリケーションから必要なものを見つけるには:

List<ResolveInfo> appInfos = context.getPackageManager().queryIntentActivities(
     new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER), 0); 

は、あなたのランチャー内のすべてのアプリケーションのための解決情報のリストを取得します。上のsetOnClickPendingIntentの目的を達成するために、そのリストから必要なものすべてを得ることができます。これらのアプリのサブセットのみが必要な場合は、異なるカテゴリまたは異なるアクションなどを適用できます。または、既知のパッケージやアクティビティを使用することもできます。

あなたのリモートビューを作成した後、あなたはユーティリティメソッドにしたり、ウィジェットプロバイダサブクラスのいずれかで、ウィジェットを更新する必要があります。

views.updateWidget(); // update resources with image, text and intent as above 
AppWidgetManager.getInstance(context.getApplicationContext()).updateAppWidget(
     widgetId, views); 
関連する問題