标签: android-wear-data-api

Android Wear DataMap条目保持有效的时间

我正在扩展我的一个应用程序以使用Android Wear,我需要向Wear发送4个位图.我正在使用DataApiDataMap执行此操作,目前它正常工作.

我的问题是,数据保持同步多长时间DataApi?一周后我还能访问它们吗?这是我必须手动管理的东西.例如,如果某个状态会在手机上发生变化,我需要发送不同的位图.我是否需要删除目前存在的?

android android-wear-data-api wear-os

5
推荐指数
1
解决办法
743
查看次数

将数据发送到android磨损设备

我正在尝试从我的手机发送一个字符串数组到我的服装,我已经在我的手机上创建了一个服务,该服务应该使用以下代码发送数据:

public class SendDataService extends Service {

private static final String TAG = "SendDataService";

@Override
public void onCreate(){
    GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
                @Override
                public void onConnected(Bundle connectionHint) {
                    Log.d(TAG, "onConnected: " + connectionHint);
                    // Now you can use the data layer API
                }
                @Override
                public void onConnectionSuspended(int cause) {
                    Log.d(TAG, "onConnectionSuspended: " + cause);
                }
            })
            .addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {
                @Override
                public void onConnectionFailed(ConnectionResult result) {
                    Log.d(TAG, "onConnectionFailed: " + result);
                }
            })
            .addApi(Wearable.API)
            .build();
    mGoogleApiClient.connect();
    String[] …
Run Code Online (Sandbox Code Playgroud)

android android-wear-data-api wear-os

5
推荐指数
1
解决办法
1万
查看次数

DataAPI比MessageAPI慢得多吗?

我正在同步可穿戴设备和智能手机之间的事件.由于我希望手机接收我的事件,即使它们已断开连接,我也开始使用DataAPI而不是MessageAPI,但现在"同步"大约需要1-2秒而不是0.1-0.5秒(感知时间).

我在消息的情况下传输一个字符串路径,如"/ notification/click"和两个字节的原始数据.在DataAPI的情况下,我使用路径"/ notification/click/1"和一个字节的原始数据.你有没有看到这种行为?除了仅在设备离线时才使用DataAPI,您知道一个技巧吗?

如果您想查看一些代码,请发表评论.由于该代码有很多boder板代码,我没有添加它(还).

android android-wear-data-api wear-os

5
推荐指数
1
解决办法
572
查看次数

无法从Android Wear向主机设备发送消息

我正在编写一个简单的Android应用程序,我需要使用MessageApi从Wear设备发送消息到我的手机.最终,我希望能够从我的衣服发送消息到手机,然后再用同一节点发回消息.

首先,我只想点击Wear应用程序上的一个按钮,该按钮将在我的移动应用程序中生成一个Toast.我正在使用Android Wear模拟器和实际的Android手机对此进行测试.

我的Android移动应用程序有一个单独的ListenerService类;

public class ListenerService extends WearableListenerService {

    String nodeId;

    @Override
    public void onMessageReceived(MessageEvent messageEvent) {
        nodeId = messageEvent.getSourceNodeId();
        showToast(messageEvent.getPath());
    }

    private void showToast(String message) {
        Toast.makeText(this, message, Toast.LENGTH_LONG).show();
    }
}
Run Code Online (Sandbox Code Playgroud)

而且我在我的清单中将这种情况搞砸了:

<service
  android:name=".ListenerService" >
    <intent-filter>
       <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
    </intent-filter>
</service>
Run Code Online (Sandbox Code Playgroud)

在我的Wear MainActivity.java;

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initApi();

        final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
        stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
            @Override
            public void onLayoutInflated(WatchViewStub stub) {
                setupWidgets();
            }
        });
    }

    /**
     * Initializes the GoogleApiClient and gets …
Run Code Online (Sandbox Code Playgroud)

java android android-studio android-wear-data-api wear-os

5
推荐指数
0
解决办法
270
查看次数

WearableListenerService的权限

WearableListenerService在我的主应用程序和配套Wear应用程序中实现了一个.在清单中,由于服务是由Google Play服务启动的,因此需要将服务声明为android:exported="true"(或根本不声明并保留为默认值true).系统上的任何应用程序都可以调用没有权限的导出服务,但是我找不到添加到服务声明中以保护它的正确权限.我已经查看了手机和Wear设备上的权限,pm list permissions但我没有看到任何看起来像我需要的东西.

  1. 是否有我可以/应该添加的权限来保护我的服务?
  2. 如果没有,通过检查调用者的包名称来手动保护服务是一个好主意吗?

android android-wear-data-api wear-os

4
推荐指数
1
解决办法
3355
查看次数

WearableDataListener Service不会调用onDataChanged方法

我正在制作一个磨损应用程序,它可以在app主屏幕的启动时从数据库(手持设备上)获取数据.因此,当主页活动启动时,它会使用Wearable.MessageApi.sendMessage函数从android wear到掌上电脑发送消息.在掌上电脑中,我有WearableListenerService,它在onMessageReceived函数中接收此消息并读取数据库.在读取数据库之后,它将putDatamapRequest发送到磨损.

现在在磨损方面,我有另一个WearableListenerService.在此服务中,永远不会调用onDataChanged()函数.它有时会运行,到目前为止它运行了2-3次但是没有运行.这是随机的.此外,一旦在Wear侧收到数据,我设置了一个静态Arraylist,我用它来显示Activity中的数据.但由于并不总是调用onDataChanged函数,因此它给出了空数组列表.

这是我的AndroidManifest文件的磨损应用程序,我在其中声明了服务:

   <service
        android:name="com.example.deals.DataListenerService"
        android:enabled="true"
        android:exported="true" >
        <intent-filter>
            <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
        </intent-filter>
    </service>
Run Code Online (Sandbox Code Playgroud)

这是我的代码,用于将消息从磨损发送到手持设备:

mGoogleApiClient = new GoogleApiClient.Builder(this).addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {

        @Override
        public void onConnected(Bundle bundle) {
                                    Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() {
                        @Override
                        public void onResult(NodeApi.GetConnectedNodesResult getConnectedNodesResult) {
                            if(!getConnectedNodesResult.getNodes().isEmpty())
                            {
                                node = getConnectedNodesResult.getNodes().get(0);
                                System.out.println("Connected: "+ node.getId());
                                Wearable.MessageApi.sendMessage(mGoogleApiClient, node.getId(), FETCH_ALL_DEALS, null).setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
                                    @Override
                                    public void onResult(MessageApi.SendMessageResult sendMessageResult) {
                                        if (!sendMessageResult.getStatus().isSuccess()) {
                                            Log.e("Wear:", "ERROR: failed to send Message: " + sendMessageResult.getStatus());
                                        }
                                        else
                                            System.out.println("success");
                                    }
                                });

                            }
                            else
                                System.out.println("Wear not connected to …
Run Code Online (Sandbox Code Playgroud)

android-wear-data-api wear-os

4
推荐指数
1
解决办法
3995
查看次数

Android Wear数据项

我正在试图弄清楚如何将一些数据从手机同步到Android Wear设备,我已经阅读了关于数据项的developer.android.com上的文章,但是我还不清楚如何使用它们.具体而言,每个代码段(GoogleApiClient,Sync和Listen)都应该在应用程序代码的流程中以及在哪个设备,电话或服装或两者上实现.

链接到developer.android.com页面

android android-wear-data-api wear-os

4
推荐指数
1
解决办法
5451
查看次数

如何从Android磨损并发症提供商在表盘上绘制图标?

使用Complications API有一个图标类型,但是在绘制图标时我不知道该怎么做.

当我绘制实际的表盘时,似乎没有drawIcon方法.例如像canvas.drawIcon(icon).我只能看到如何绘制位图.

在我的drawComplications方法中我有这个:

} else if (complicationData.getType() == ComplicationData.TYPE_ICON) {
                Icon icon = complicationData.getIcon();
Run Code Online (Sandbox Code Playgroud)

然后我如何将图标绘制到画布?

这里的代码实验室没有告诉我们如何绘制图标:https://codelabs.developers.google.com/codelabs/complications/index.html?index =..% 2F..%2Findex#3

我可以只将所有drawable复制到本地可穿戴模块,并通过传入一个字符串绕过图标​​类型,然后从那里绘制相应的位图.但必须有一种方法可以从图标中提取,否则为什么会这样呢?

我也无法从谷歌搜索中找到如何将图标转换为位图,但这似乎也很愚蠢,因为我不得不首先将位图转换为图标,因为API需要一个图标.

任何帮助赞赏.

谢谢.

android android-wear-data-api android-wear-2.0 android-wear-complication wear-os

4
推荐指数
1
解决办法
511
查看次数

访问android Wear数据层时出错

我试图访问数据可穿戴层作为显示与手机应用交流这里

但是,在编写以下行之后:

DataClient dataClient = Wearable.getDataClient(context);

Android lint 在 Android Studio 中标记它并显示以下错误:

Cannot access com.google.android.gms.hasApiKey

任何人都可以帮助我了解此错误的含义以及如何解决它。

PS:我已经通过向我的 gradle 文件添加必要的配置来集成 Google Play Services API。

android android-wear-data-api android-wear-2.0 wear-os

4
推荐指数
1
解决办法
252
查看次数

主机上的Android Wear Watchface设置

我目前有一个开发的android磨损表盘.然而,我现在想在主机应用程序上创建一个允许用户自定义表盘的设置部分.我是android开发的新手,所以我很好奇这样做的正确方法.

有没有办法在主机上更新共享首选项,然后在磨损设备上推送或同步共享首选项?或者我应该看到一个完全不同的方式?

android android-wear-data-api wear-os

3
推荐指数
1
解决办法
2736
查看次数