Android Wear访问Google健身API

时间:2016-11-14 13:16:00

标签: android wear-os google-api-client google-fit android-wear-2.0

我正在尝试访问Android Wear上的Google Fit API以获取用户目标,并且我遇到了问题。

//我在Android Wear 2.0模拟器上运行。

如果在Builder中没有指定帐户(通过setAccountName),我会得到 “无效帐户”错误消息。

如果我手动设置我收到的帐户名称

  

“com.android.tools.fd.runtime.BootstrapApplication存在Google Play服务可用性问题。请重试。”。

我使用以下代码执行此操作:

     mClient = new GoogleApiClient.Builder(this)
                    .addApi(Fitness.GOAL_API)
                    .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ))
                    .addScope(new Scope(Scopes.FITNESS_LOCATION_READ))
                    .addConnectionCallbacks([...])
                    .addOnConnectionFailedListener(
                        new GoogleApiClient.OnConnectionFailedListener() {
                            @Override
                            public void onConnectionFailed(ConnectionResult result) {
                                    if (result.hasResolution()) {
                                        try {
                             result.startResolutionForResult(ConfigAccount.this, request_code);
                                        } catch (IntentSender.SendIntentException e) {
                                            e.printStackTrace();
                                        }
                                    } else {
    GoogleApiAvailability.getInstance().getErrorDialog(ConfigAccount.this, result.getErrorCode(), request_code_error, new DialogInterface.OnCancelListener() {})
                    .build();

每次onConnectionFailed()中的result.resolution为null。 错误代码为5005 - UNKNOWN_AUTH_ERROR 因为分辨率为null,startResolutionOnResult和enableAutoManage不起作用。

凭据应该没问题。 提出的方法适用于Android 5.1手机。

播放服务的版本是9.8.0。 降级版本并没有帮助。

任何想法如何实现我的目标? 感谢。

2 个答案:

答案 0 :(得分:2)

FitnessStatusCodes documentationError code is 5005 - UNKNOWN_AUTH_ERRO R是状态代码,表示尝试获取OAuth令牌时发生了未知错误。因此,请确保正确获取OAuth令牌。

如果您的应用未在Google开发者控制台中正确注册,则会出现此错误的另一个可能原因。

在此thread中说明您可能已使用生产密钥库证书指纹(SHA1)在Google开发者控制台上注册了应用,而在具有调试密钥库的应用中对其进行了测试。

以下是您需要执行的步骤。

  • 使用调试密钥库证书指纹(SHA1)再创建一个客户端ID。
  • 卸载现有应用。
  • 安装应用&连接到Google fit。
  • 检查google fit app&确保您的应用程序列为已连接的应用程序(...>设置>已连接的应用程序>已连接的应用和设备

有关详细信息,请查看此thread和此SO question

答案 1 :(得分:1)

我知道需要一些时间才能回答,但在Android Wear Dev Preview 4中,Google添加了wear 2.0 authentication。看起来像可穿戴设备不支持其他登录谷歌服务的方式。