Я хотел бы открыть другое установленное приложение, щелкнув кнопку / 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);
}
}
Заранее спасибо.
PackageManager#getLaunchIntentForPackage()
, чтобы получитьIntent
, который вы передаетеPendingIntent
, как показано в связанном дубликате. - person Mike M.   schedule 30.01.2017"com.example.package"
на имя пакета для приложения, которое вы хотите открыть. Затем вместо вызоваcontext.startActivity(launchIntent);
используйтеPendingIntent.getActivity(context, 0, launchIntent, 0)
, чтобы получитьPendingIntent
для вашегоButton
, и используйте его сremoteViews.setOnClickPendingIntent()
, как если бы вы были в опубликованном коде. - person Mike M.   schedule 30.01.2017context.startActivity(launchIntent)
. Уберите эти призывы. Обратите внимание, что в моем примере используетсяPendingIntent.getActivity()
вместоPendingIntent.getBroadcast()
. - person Mike M.   schedule 30.01.2017PendingIntent.getActivity()
работает. Извините за беспокойство и спасибо за вашу помощь. - person Rifan   schedule 30.01.2017