Как запустить активность через am start из программы

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
faceman
Сообщения: 3
Зарегистрирован: 12 июл 2014, 09:02

Как запустить активность через am start из программы

Сообщение faceman » 12 июл 2014, 09:07

Всем привет. Подскажите, как запустить активность, скажем, браузера, из программы через adb команду am start?


faceman
Сообщения: 3
Зарегистрирован: 12 июл 2014, 09:02

Re: Как запустить активность через am start из программы

Сообщение faceman » 12 июл 2014, 13:18

Возможно, я неправильно выразился. Интересует, как запустить активность браузера из моей программы, а не через adb tools. Без использования intent, именно через вызов am start. (Телефон НЕ рутован)

Через вот такой метод запустить почему-то не получается (android 4.2.2)

Код: Выделить всё

public void StartOtherActivity() {
    try {
        Runtime.getRuntime().exec("am start -n com.android.browser/.BrowserActivity");
    }    catch (IOException e) {
        e.printStackTrace();
    }
}

Viewer
Сообщения: 180
Зарегистрирован: 30 апр 2014, 11:42

Re: Как запустить активность через am start из программы

Сообщение Viewer » 12 июл 2014, 14:15

Для начала нужно выяснить пакет и имя активности встроенного браузера, у разных производителей он может быть свой.
К примеру у меня на Samsung:
com.sec.android.app.sbrowser
com.sec.android.app.sbrowser.SBrowserMainActivity

Чтобы найти имена активностей всех браузеров установленных на устройстве, можно попробовать запустить следующий код
[syntax=java] PackageManager packageManager = getPackageManager();
Intent intent = new Intent(Intent.ACTION_VIEW)
.setDataAndType(Uri.parse("http://"), "text/html");
List<ResolveInfo> list = packageManager.queryIntentActivities(intent, 0);
for (ResolveInfo resolveInfo : list) {
Log.d(TAG, resolveInfo.activityInfo.name);
}[/syntax]

faceman
Сообщения: 3
Зарегистрирован: 12 июл 2014, 09:02

Re: Как запустить активность через am start из программы

Сообщение faceman » 12 июл 2014, 15:10

В вышеприведенном коде имя активности указано верно, но дело, собственно и не в этом. На андроиде 4.2.2 таким методом не запускаются НИКАКИЕ активности, а на андроиде 2.3.3 все работаеет отлично

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Как запустить активность через am start из программы

Сообщение altwin » 12 июл 2014, 16:10

Я вообще подобное не пробывал, но подозреваю, что может помочь: am broadcast -a android.intent.action.xxx, где xxx - имя action задекларированное в манифесте.
Изображение

Ответить