Android Wear – начните работу с переносного действия

Я отправляю уведомление с мобильного устройства android на устройство для борьбы с андроидами. Я хотел бы включить действие с уведомлением, которое начинает действие на устройстве износа Android.

Как установить ожидающее намерения действие на устройство износа? Я могу запустить эту операцию, если уведомление создано на носимом носителе, но не в том случае, если уведомление создано на телефоне, а затем отправлено на носимое.

// creating action for push notification created on handheld public NotificationCompat.Action CreateWearAppAction(Integer metricId) { // I wasnt able to look up the wear's main activity class since this is in the handheld project. Intent wearPageIntent = new Intent(Intent.ACTION_VIEW); Uri wearUri = Uri.parse("mywearapp://Test?MetricId=" + metricId); wearPageIntent.setData(wearUri); PendingIntent wearPagePendingIntent = PendingIntent.getActivity(context, 0, wearPageIntent, 0); return new NotificationCompat.Action.Builder(R.drawable.ic_action_metric, "Open Charts on Wear", wearPagePendingIntent) .build(); } 

Явление активности из приложения для ношения, которое я пытаюсь запустить:

  <activity android:name=".MainActivity" android:label="@string/app_name" android:noHistory="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <!-- deep link --> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="mywearapp" /> </intent-filter> </activity> 

Взгляните на образец DataLayer, включенный в Android SDK Manager для API 20. Он содержит пример того, как начать работу над носимым после того, как пользователь нажмет кнопку на мобильном устройстве.

Это, вероятно , сделано с небольшим количеством хакерства.

Создайте свое собственное действие и сделайте Wear.activity <intent-filter embed <intent-filter чтобы использовать его. Что-то вроде:

  <intent-filter> <action android:name="com.myCompany.myApp.ACTION.openWearActivity" /> </intent-filter> 

То в своем намерении уведомления, созданного с телефона, вы это знаете, просто используйте его:

 new Intent("com.myCompany.myApp.ACTION.openWearActivity"); 

И вуаля!