Запуск действия в микроприложении (носимое устройство 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", определенным в носимом манифесте.

Когда я выполняю действие из уведомления на носимом устройстве, я ожидаю, что действие из микроприложения будет запущено. Но ничего не происходит. Может кто-нибудь помочь в этом. Правильно ли это сделать?


person Android_dev_new    schedule 17.12.2015    source источник


Ответы (1)


Действия, которые вы добавляете в уведомление, предназначены для устройства, на котором было создано уведомление, поэтому, если вы создаете уведомление на своем телефоне, когда вы нажимаете на него на своих часах, действие будет отправлено обратно на ваш телефон для выполнения.

Если вы хотите открыть свою активность на часах, вы не сможете сделать это, отправив уведомление со своего телефона, как вы это сделали. У вас есть несколько вариантов: например, вы можете отправить сообщение со своего телефона на часы, а затем заставить носимую часть вашего приложения перехватить это сообщение и отправить «локальное» уведомление на часы; тогда действия в этом уведомлении являются локальными для ваших часов, и вы можете открыть желаемое действие с помощью действий в этом уведомлении. Если вы хотите напрямую открыть действие на своих часах со своего телефона (т. е. вам не нужно уведомление для отображения на ваших часах), вы можете обработать сообщение, о котором я говорил, на своих часах и вместо создания уведомления там просто откройте нужное действие. В некоторых из этих случаев вам может пригодиться WearCompanionLibrary.

person Ali Naddaf    schedule 17.12.2015
comment
Спасибо @ali-naddaf за подробное объяснение. - person Android_dev_new; 17.12.2015