特定のintent-filterが設定されているアプリ一覧が欲しいなぁと思った際に、 どうやって取得するのかわからなかったので、調べました。 具体的にはIntentを作成し、PackageManagerに、そのIntentに該当するActivityを取得するメソッドqueryIntentActivitiesを実行するという方法です。 PackageManager pm = getPackageManager(); Intent intent = new Intent(Intent.ACTION_VIEW); intent.addCategory(Intent.CATEGORY_DEFAULT); List<ResolveInfo> apps = pm.queryIntentActivities(intent, 0); HashMap<String, String> maps = new H
PendingIntentに登録したIntentを更新できない●問題 PendingIntentは以下のように登録しています。 Intent intent = new Intent( context, Test.class); defineIntent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK); defineIntent.putExtra( "title", event.getTitle()); PendingIntent pendingIntent = PendingIntent.getActivity( context, 0, intent, 0); eventを引数としてこの処理を繰り返し呼び出した場合、渡したeventによって Testアクティビティに渡るtitle値が変わってくれないと困ります。 しかし、上記のコードでは、title値は
AndroidのフレームワークにはAndroidを強く特徴付けるIntentという仕組みがある。 IntentはActivityやServiceといった実行単位のコンポーネントを起動する場合に利用される。 プログラマはstartActivityやstartServiceといった関数を用いてActivityとServiceの起動を命ずるが、このとき引数にIntentを使うことにより実行対象を指定する。 Intentが優れているのはこの指定方法にある。 Intentは明示的にクラス名を指定することにより明らかに実行されるコンポーネントを指定することが可能だ。 しかし、より優れたIntentの利用方法は暗黙的なIntentの利用である。 暗黙的なIntentを用いることにより、直接実行コンポーネントを指定する必要がなくなる。 これによりコンポーネント間の結合はより緩やかな疎結合となる。 呼出元の
連絡先を表示したい場合 こうすると startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("content://contacts/people"))); ちゃんとDialtactsContactsEntryActivityがcmpに指定される。 12-08 20:22:51.547: INFO/ActivityManager(60): Starting activity: Intent { act=android.intent.action.VIEW dat=content://contacts/people cmp=com.android.contacts/.DialtactsContactsEntryActivity } NotePadの場合 NotePadではこのコードが // getData()の戻り値はUri.parse("
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く