Итак, что я хочу сделать, так это создать виджет, который будет просто запускать другое приложение при нажатии виджета. Приложения, однако, созданы не мной, то есть приложение Market, браузер и тому подобное. Я уже настроил AppWidgetProvider и сделал все изменения в манифесте и все такое. Мне просто нужно знать, что я должен добавить в исходный файл класса/Java, который это сделает. Любая помощь приветствуется, спасибо!
Запустить другое приложение из виджета Android?
comment
возможный дубликат Как запустить активность из виджета домашнего экрана Android а>
- person citizen conn   schedule 26.07.2011
Ответы (1)
Попробуйте сделать это:
String packageName = "com.package";
String className = "com.package.MainActivity";
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName(packageName, className));
startActivity(intent);
ОБНОВЛЕНИЕ:
Это выглядит как лучший способ запуска приложения:
PackageManager pm = getPackageManager();
try
{
String packageName = "com.example.package";
Intent launchIntent = pm.getLaunchIntentForPackage(packageName);
startActivity(launchIntent);
}
catch (Exception e1)
{
}
person
A. Abiri
schedule
26.07.2011
Я получаю несколько ошибок, но основные из них, по-видимому, заключаются в том, что для startActivity отсутствует тип возвращаемого значения, и это намерение не может быть преобразовано в тип, в разработке которого я новичок, поэтому, пожалуйста, обратите внимание на мою неопытность, спасибо за помощь.
- person natehoch96; 26.07.2011
Убедитесь, что у вас есть правильное имя пакета и имя класса. Кроме того, попробуйте изменить startActivity(намерение) на MyActivity.this.startActivity(намерение). Если это не сработает, мне нужно, чтобы вы показали мне, как выглядит код, когда вы вводите свои значения, потому что я поместил этот код в свое приложение, и он работает без проблем.
- person A. Abiri; 26.07.2011
Хорошо, я думал, что у меня это работает, но теперь он выдает мне ошибку в намерении.setComponent, говоря, что синтаксическая ошибка в токене setComponent, = ожидается после этого токена. Что я должен делать? Спасибо.
- person natehoch96; 28.07.2011
Можете ли вы показать мне свой код с именем пакета и именем класса, чтобы я мог сказать вам, почему вы получаете ошибку?
- person A. Abiri; 29.07.2011
Я только что нашел другой способ запустить приложение, которое кажется более чистым и официальным. Он работал в классе активности, но я не проверял его в сервисе. Я поместил код в свой ответ в обновленном разделе. Посмотрите, работает ли это. Если нет, то прочитайте мой предыдущий комментарий.
- person A. Abiri; 29.07.2011
Хорошо, новый код, кажется, работает для меня. Хотя теперь я столкнулся с большим количеством ошибок, но, к счастью, эти ошибки не связаны с предоставленным вами кодом. Однако я начал новый пост об этом, так как не хотел загромождать его несвязанными вопросами. Спасибо за твою помощь.
- person natehoch96; 29.07.2011
Ух ты. Он благодарен, но не проголосовал за ваш ответ и не принял его. Слабый соус. Это сработало идеально для меня. +1
- person xdumaine; 07.12.2012