[解決済み] 自分のアプリケーションから別のアプリケーションを開く(インテント)
2022-05-25 05:05:43
質問
私は自分のプログラムを更新する方法を知っていますし、定義済みの Uri を使用してプログラムを開く方法も知っています (たとえば、SMS や電子メールの場合)。
MyTracks または他のアプリケーションを開くために、どのようにインテントを作成できるかを知る必要がありますが、どのようなインテントを聞くのかわかりません。
DDMS からこの情報を得ましたが、これを使用できる Intent に変換することに成功していません。これは、MyTracks を手動で開いたときから取得しました。
ご協力ありがとうございました。
05-06 11:22:24.945: INFO/ActivityManager(76): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks bnds=[243,338][317,417] }
05-06 11:22:25.005: INFO/ActivityManager(76): Start proc com.google.android.maps.mytracks for activity com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks: pid=1176 uid=10063 gids={3003, 1015}
05-06 11:22:26.995: INFO/ActivityManager(76): Displayed activity com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks: 1996 ms (total 1996 ms)
どのように解決するのですか?
まず、Android におけるアプリケーションの概念は、少し拡張されたものです。
アプリケーション (技術的にはプロセス) は、複数のアクティビティ、サービス、コンテンツ プロバイダー、および/またはブロードキャスト リスナーを持つことができます。それらの少なくとも 1 つが実行されている場合、アプリケーションは稼働しています (プロセス)。
したがって、特定しなければならないのは、どのようにアプリケーションを開始するかということです。
OK...ここで、試してみてください。
-
でインテントを作成します。
action=MAIN
とcategory=LAUNCHER
-
を取得します。
PackageManager
を使い、現在のコンテキストからcontext.getPackageManager
-
packageManager.queryIntentActivity(<intent>, 0)
ここで、インテントにはcategory=LAUNCHER
,action=MAIN
またはpackageManager.resolveActivity(<intent>, 0)
で最初のアクティビティを取得する場合は main/launcher -
を取得します。
ActivityInfo
を取得します。 -
から
ActivityInfo
を取得します。packageName
とname
-
最後に、別のインテントを
category=LAUNCHER
,action=MAIN
,componentName = new ComponentName(packageName, name)
とsetFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
-
最後に
context.startActivity(newIntent)
関連
-
android E/RecyclerView﹕ アダプタが接続されていないため、レイアウトをスキップする。
-
android studioが "The activity must be exported or contain an intent-filter" と表示され実行される。
-
Error:A problem occurred configuring project ':app'. > ビルドを見つけられませんでした。
-
エラータイプ 3 タイプエラー, Error: アクティビティクラス{}が存在しません。アクティビティ起動時のエラー 解決方法
-
アンドロイドのエリプサイズを使用する
-
android bluetooth--Bluetooth on、検索、ペアリング、接続
-
アンドロイドの遅延実行のいくつかの方法
-
[解決済み] アプリケーションからAndroidのWebブラウザでURLを開くにはどうすればよいですか?
-
[解決済み] Intentsを使用して、あるAndroid Activityから別のAndroid Activityにオブジェクトを送信するにはどうすればよいですか?
-
[解決済み] Androidでインテントから余分なデータを取得するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ジャークとして。起動アクティビティを特定できませんでした。デフォルトのアクティビティが見つかりません アクティビティ起動中のエラー
-
Android studioのインストールと問題発生、Emulator: PANIC: AVDのシステムパスが見つかりません。
-
repo: コマンドが見つかりません
-
Androidで、onTouchEventでダブルクリックを実装し、ダブルクリックイベントとして判定する方法
-
view.getRootView()の本当の意味とテストについて
-
android bluetooth--Bluetooth on、検索、ペアリング、接続
-
SpinnerのOnItemSelectedListenerのonItemSelectedメソッドの4つのパラメーターの意味
-
アンドロイドの遅延実行のいくつかの方法
-
アプリの実行エラー。ターゲットデバイスが見つからない問題
-
Android TextViewは、テキスト内容が表示省略記号を超えているかどうかを判断する