我创建了一个简单的应用程序,它监听来自其他应用程序的通知事件。我收到了 StatusBarNotification 对象并从中获得了 WearableExtender。然后我得到了扩展器所拥有的 remoteInputs。
然后使用这段代码用我自己的文本填充远程输入并发送pendingIntent:
RemoteInput[] remoteInputs = new RemoteInput[notificationWear.remoteInputs.size()];
Intent localIntent = new Intent();
localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Bundle localBundle = notificationWear.bundle;
int i = 0;
for(RemoteInput remoteIn : notificationWear.remoteInputs){ getDetailsOfNotification(remoteIn);
remoteInputs[i] = remoteIn;
localBundle.putCharSequence(remoteInputs[i].getResultKey(), "Our answer"); //This work, apart from Hangouts as probably they need additional parameter (notification_tag?)
i++;
}
RemoteInput.addResultsToIntent(remoteInputs, localIntent, localBundle);
try {
notificationWear.pendingIntent.send(MainActivity.this, 0, localIntent);
} catch (PendingIntent.CanceledException e)
{
Log.e(TAG, "replyToLastNotification error: " + e.getLocalizedMessage());
}
但是消息来源声称此代码应该可以工作,我只能打开特定的应用程序和特定的对话,但无法发送回复。我已经在 Facebook、WhatsApp 和其他应用程序中尝试过。其他应用程序也是如此。