- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试实现 android wear 应用程序。我想我不明白什么,因为我的测试项目表现得很奇怪。这是一个非常简单的项目 - 在移动设备上有两个按钮(“发送 map ”和“发送消息”)的 Activity ,在可穿戴设备上有 WearableListenerService,它会在收到数据时创建通知。
现在,当我尝试通过 Wearable.DataApi 发送数据时,可穿戴设备上没有任何反应 - 数据已发送,但可穿戴设备上没有任何反应(可穿戴设备一直与移动设备耦合)。我试着等了 10-15 分钟,但仍然没有。但是,如果我随后通过 MessageApi 发送数据,消息会立即传送,并且我通过 DataApi 发送的所有数据项也会在那个时刻收到。
当我尝试使用 DataApi(DataLayer 或 Quiz)的谷歌示例时,数据项似乎几乎是即时交付的,但几乎所有数据项都使用 DataApi 和 MessageApi。
此外,如果我在发送数据项后启动这些示例之一,我发送的所有项目也会被传送。
所以我想我的问题是:是否是我的代码中的错误导致数据项无法传送?或者它应该像这样工作并且数据项只是在设备上累积,并且实际交换正在发生,例如,每隔一小时左右,发送消息是触发立即传递的唯一方法?
这是我的数据项发送代码:
String data = String.valueOf(System.currentTimeMillis());
PutDataMapRequest pdmr = PutDataMapRequest.create("/wear_test/"+data);
pdmr.getDataMap().putString("1", data);
PutDataRequest pdr = pdmr.asPutDataRequest();
Wearable.DataApi.putDataItem(googleApiClient,pdr);
监听服务代码如下:
public class ListenerService extends WearableListenerService {
private static final String TAG = ListenerService.class.getSimpleName();
@Override
public void onCreate() {
super.onCreate();
Log.e(TAG, "Service created");
}
@Override
public void onDataChanged(DataEventBuffer dataEvents) {
super.onDataChanged(dataEvents);
Log.e(TAG, "onDataChanged(DataEventBuffer dataEvents) is called");
for (DataEvent dataEvent : dataEvents) {
Log.e(TAG, "Event type: "+dataEvent.getType()+", Uri:'"+dataEvent.getDataItem().getUri());
if(dataEvent.getType()==DataEvent.TYPE_CHANGED && dataEvent.getDataItem().getUri().getPath().contains("/wear_test")){
DataMap dataMap = DataMapItem.fromDataItem(dataEvent.getDataItem()).getDataMap();
String data = dataMap.getString("1");
Log.e(TAG, "Data received: " + data);
createNotification(data,505, "data map");
}
}
}
@Override
public void onMessageReceived(MessageEvent messageEvent) {
super.onMessageReceived(messageEvent);
if (messageEvent.getPath().contains("wear_test")){
String messageStr = new String(messageEvent.getData(), Charset.forName("UTF-8"));
Log.e(TAG, "Message received:"+messageStr);
createNotification(messageStr,808, "message");
}
}
private void createNotification(String data, int notificationCode, String suffix){
Notification notification = new Notification.Builder(this)
.setTicker(data)
.setSmallIcon(R.drawable.common_google_signin_btn_icon_light)
.setContentText(data+"\n"+suffix)
.setSubText(data+"\n"+suffix)
.build();
((NotificationManager) getSystemService(NOTIFICATION_SERVICE))
.notify(notificationCode, notification);
}
}
最佳答案
我遇到了同样的问题。我使用 PutDataRequest.setUrgent() 解决了它.
来自文档:
DataItems will be delayed no longer than 30 minutes, subject to a connected peer, but are expected to arrive much sooner. Clients should only setUrgent() for DataItems which need to be delivered right away.
关于Android 磨损数据层 PutDataMapRequest 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34149785/
我有一个应用程序可以在应用程序内购买适用于 Android Wear 的表盘。 然而,新的 API 似乎将所有面孔都实现了 Android Wear 应用程序的 CanvasWatchFaceServ
所以我在 StackOverflow 上四处寻找,但没有找到答案,所以我想知道是否缺少某些东西。我在我的应用程序的“磨损”部分中有一个 Activity ,其包和应用程序名称与我的移动部分相同,但在发
嗨,我正在关注 Google documentation使用“开始”命令打开一个虚拟应用程序,但对我不起作用。 我使用带有移动和穿戴模块的 Android Studio 向导创建了一个新的默认项目。
我有一个大量使用 SQLite 数据库的 Node.js 应用程序,我担心它可能会对我的 SSD 产生影响。 我的应用程序定期更新有关连接到特定服务器的所有客户端的信息。我不想在这里讨论有关客户端和/
我是一名优秀的程序员,十分优秀!