Запуск активности на микро-приложение (Android-носимых)
Я создаю уведомление из моего приложения на телефоне следующим образом.
private void launchMicroAppFromWearableNotif() {
int notificationId = 001;
// The below action has been defined in the micro app
Intent i = new Intent("com.microapp.action.PLAY_MUSIC");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent playPendingIntent =
PendingIntent.getActivity(this, 0, i, 0);
NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.play_music)
.setContentTitle("Play Music")
.setContentText("Play Music on Wear")
.setContentIntent(playPendingIntent)
.addAction(R.drawable.play_music, getString(R.string.act1), playPendingIntent);
NotificationManagerCompat notificationManager =
NotificationManagerCompat.from(this);
// Build the notification and issues it with notification manager.
notificationManager.notify(notificationId, notificationBuilder.build());
}
Я создал носимое микро-приложение, которое имеет действие (PlayActivity) с действием "com.microapp.action.PLAY_MUSIC", определенным в носимом манифесте.
Когда я выполняю действие из уведомления о носимом устройстве, я ожидаю, что будет запущено действие из микро приложения. Но ничего не происходит. Может ли кто-нибудь, пожалуйста, помочь в этом. Это правильный способ сделать это?
1 ответ
Действия, которые вы добавляете в уведомление, относятся к устройству, на котором было создано уведомление, поэтому, если вы создадите уведомление на своем телефоне, когда вы нажмете на него на часах, действие будет отправлено обратно на ваш телефон для выполнения.
Если вы хотите открыть свою активность на своих часах, вы не сможете добиться этого, отправив уведомление со своего телефона так, как вы это сделали. У вас есть несколько вариантов: например, вы можете отправить сообщение со своего телефона на часы, а затем заставить изнашиваемую сторону приложения перехватить это сообщение и выставить "локальное" уведомление на часы; тогда действия в этом уведомлении являются локальными для ваших часов, и вы можете открыть желаемое действие с помощью действий в этом уведомлении. Если вы хотите напрямую открыть на своих часах активность с телефона (то есть вам не нужно уведомление, чтобы отображаться на ваших часах), вы можете обработать сообщение, о котором я говорил, на ваших часах вместо создания уведомления. там просто откройте желаемое действие. Вы можете найти библиотеку WearCompanion полезной для обработки некоторых из этих случаев.