Я знаю, как обновить свои собственные программы, и я знаю, как открывать программы, используя предопределенный Uri (например, для смс или электронной почты)
Мне нужно знать, как я могу создать Intent для открытия MyTracks или любое другое приложение, которое я не знаю, какие намерения они слушают.
Я получил эту информацию от DDMS, но мне не удалось превратить это в Намерение, которое я могу использовать. Это взято при открытии 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 немного расширено.
Приложение - технически процесс - может иметь несколько действий, услуг, поставщиков контента и / или слушателей широковещательной передачи. Если хотя бы один из них запущен, приложение запущено и работает (процесс).
Итак, вам нужно определить, как вы хотите «запустить приложение».
Хорошо ... вот что вы можете попробовать:
action = MAIN
и category = LAUNCHER
PackageManager
из текущий контекст с использованием context.getPackageManager
packageManager.queryIntentActivity (, 0)
, где намерение имеет категорию = LAUNCHER
, action = MAIN
или packageManager.resolveActivity (, 0)
для получения первого действия с помощью main / launcher ActivityInfo
, который вас интересует ActivityInfo
, получите имя_пакета
и имя
category = LAUNCHER
, action = MAIN
, componentName = new ComponentName (packageName, name)
и setFlags (Intent.FLAG_ACTIVITY_NEW_TASK)
context.startActivity (newIntent)