【发布时间】:2014-10-09 21:54:01
【问题描述】:
我想创建这样的通知(如here,在打破卡片(使用自定义布局)部分)。也就是说,它应该包含一个全屏页面(实际上是一个地图)。
它是(在图片上)扩展通知还是穿戴应用程序?如何实现这个全屏视图?
我已尝试按照here 的描述进行操作,但我的活动不是从通知开始的。
【问题讨论】:
我想创建这样的通知(如here,在打破卡片(使用自定义布局)部分)。也就是说,它应该包含一个全屏页面(实际上是一个地图)。
它是(在图片上)扩展通知还是穿戴应用程序?如何实现这个全屏视图?
我已尝试按照here 的描述进行操作,但我的活动不是从通知开始的。
【问题讨论】:
您可以像这样将 Activity 嵌入到 Wear Notification 中:
Notification myFullScreenNotification = new Notification.Builder(context)
.setSmallIcon(R.drawable.ic_launcher)
.setContentText(notificationText)
.extend(new Notification.WearableExtender()
.setCustomSizePreset(Notification.WearableExtender.SIZE_FULL_SCREEN)
.setDisplayIntent(PendingIntent.getActivity(context, 0, new Intent(context, MyActivity.class), 0)))
.build();
确保您在 AndroidManifest.xml 中授予正确的权限:
<activity
android:name=".MyActivity"
android:exported="true"
android:allowEmbedded="true"
android:taskAffinity="" />
通知正常显示,直到用户向上滑动,然后它会变成全屏并在页面上运行活动。
如果您想将 Activity 用作 Notification 的辅助页面,则将上面的 Notification 作为另一个通知的页面插入,如下所示:
Notification myWearNotification = new Notification.Builder(context)
.setSmallIcon(R.drawable.ic_launcher)
.setContentText(notificationText)
.extend(new Notification.WearableExtender()
.addPage(myFullScreenNotification)
.build();
【讨论】:
需要 Android Wear 应用才能完全自定义通知的布局。
我尝试编写一个自定义库,该库从手机发送一个布局 xml 以供佩戴和充气,但由于与 LayoutInflator 相关的限制,这是不可能的。
以下是相关的参考:出于性能原因,视图膨胀很大程度上依赖于在构建时完成的 XML 文件的预处理。因此,目前无法在运行时在纯 XML 文件上使用带有 XmlPullParser 的 LayoutInflater;它仅适用于从已编译资源(R.something 文件)返回的 XmlPullParser。
【讨论】: