открывать другое приложение при нажатии кнопки из Android appwidgetprovider

Я хотел бы открыть другое установленное приложение, щелкнув кнопку / imageButton у поставщика виджетов моего приложения. Вот мой код,

 @Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    final int count = appWidgetIds.length;

    for (int i = 0; i < count; i++) {
        int widgetId = appWidgetIds[i];
        RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
                R.layout.activity_main);


        Intent intent = new Intent(context, MainActivity.class);
        intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
        intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
                0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        remoteViews.setOnClickPendingIntent(R.id.imageViewBus, pendingIntent);
        appWidgetManager.updateAppWidget(widgetId, remoteViews);
    }
}

Заранее спасибо.


person Rifan    schedule 30.01.2017    source источник
comment
Конкретное приложение? Если да, то какое приложение? Вы знаете название пакета?   -  person Mike M.    schedule 30.01.2017
comment
Да, конкретное приложение. Да, я знаю название пакета.   -  person Rifan    schedule 30.01.2017
comment
Вам просто нужно использовать метод PackageManager#getLaunchIntentForPackage(), чтобы получить Intent, который вы передаете PendingIntent, как показано в связанном дубликате.   -  person Mike M.    schedule 30.01.2017
comment
Вы можете дать мне ссылку или код, который я могу добавить в свой код?   -  person Rifan    schedule 30.01.2017
comment
Взгляните на этот ответ здесь, так как он наиболее подходит для вашей ситуации. Измените "com.example.package" на имя пакета для приложения, которое вы хотите открыть. Затем вместо вызова context.startActivity(launchIntent); используйте PendingIntent.getActivity(context, 0, launchIntent, 0), чтобы получить PendingIntent для вашего Button, и используйте его с remoteViews.setOnClickPendingIntent(), как если бы вы были в опубликованном коде.   -  person Mike M.    schedule 30.01.2017
comment
Это не работает. Не могли бы вы проверить мой проект? GitHub   -  person Rifan    schedule 30.01.2017
comment
Вы не хотите никуда звонить context.startActivity(launchIntent). Уберите эти призывы. Обратите внимание, что в моем примере используется PendingIntent.getActivity() вместо PendingIntent.getBroadcast().   -  person Mike M.    schedule 30.01.2017
comment
да PendingIntent.getActivity() работает. Извините за беспокойство и спасибо за вашу помощь.   -  person Rifan    schedule 30.01.2017
comment
Не стоит беспокоиться. Рад, что у тебя все получилось. Ваше здоровье!   -  person Mike M.    schedule 30.01.2017