Android 穿搭 Google 合身 API
Android Wear access Google Fit API
我正在尝试访问 Google Fit API on Android Wear 以获得用户目标,我遇到了后续问题。
//我在 Android Wear 2.0 模拟器上运行。
如果在 Builder 中没有指定帐户(通过 setAccountName),我得到
"Invalid Account" 错误信息。
如果我手动设置我收到的帐户名
"com.android.tools.fd.runtime.BootstrapApplication has problem with availability of google play services. Try again.".
我使用了以下代码来做到这一点:
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
因为分辨率为空,所以 startResolutionOnResult 和 enableAutoManage 不起作用。
凭据应该没问题。
提出的方法适用于 phone 和 Android 5.1。
播放服务版本为9.8.0。
降级版本没有帮助。
有什么想法可以实现我的目标吗?
谢谢。
来自 FitnessStatusCodes
documentation,Error code is 5005 - UNKNOWN_AUTH_ERRO
R 是一个状态代码,表示在尝试获取 OAuth 令牌时发生了未知错误。因此,请确保正确获取 OAuth 令牌。
如果您的应用程序未在 google 开发人员控制台中正确注册,则会发生此错误的另一个可能原因。
在此 thread 中指出,您可能已经使用生产密钥库证书指纹 (SHA1) 在 Google 开发人员控制台上注册了应用程序,而您在具有调试密钥库的应用程序上对其进行了测试。
以下是您需要执行的步骤。
- 使用调试密钥库证书指纹 (SHA1) 再创建一个客户端 ID。
- 卸载现有应用。
- 安装应用程序并连接到 Google fit。
- 检查 google fit app 并确保您的应用被列为连接的应用(... > 设置 > 连接的应用 > 连接的应用和设备
有关详细信息,请查看此 thread and this SO question。
我知道回答需要一些时间,但在 Android Wear Dev Preview 4 中,Google 添加了 wear 2.0 authentication。可穿戴设备似乎不支持其他登录 google 服务的方式。
我正在尝试访问 Google Fit API on Android Wear 以获得用户目标,我遇到了后续问题。
//我在 Android Wear 2.0 模拟器上运行。
如果在 Builder 中没有指定帐户(通过 setAccountName),我得到 "Invalid Account" 错误信息。
如果我手动设置我收到的帐户名
"com.android.tools.fd.runtime.BootstrapApplication has problem with availability of google play services. Try again.".
我使用了以下代码来做到这一点:
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 因为分辨率为空,所以 startResolutionOnResult 和 enableAutoManage 不起作用。
凭据应该没问题。 提出的方法适用于 phone 和 Android 5.1。
播放服务版本为9.8.0。 降级版本没有帮助。
有什么想法可以实现我的目标吗? 谢谢。
来自 FitnessStatusCodes
documentation,Error code is 5005 - UNKNOWN_AUTH_ERRO
R 是一个状态代码,表示在尝试获取 OAuth 令牌时发生了未知错误。因此,请确保正确获取 OAuth 令牌。
如果您的应用程序未在 google 开发人员控制台中正确注册,则会发生此错误的另一个可能原因。
在此 thread 中指出,您可能已经使用生产密钥库证书指纹 (SHA1) 在 Google 开发人员控制台上注册了应用程序,而您在具有调试密钥库的应用程序上对其进行了测试。
以下是您需要执行的步骤。
- 使用调试密钥库证书指纹 (SHA1) 再创建一个客户端 ID。
- 卸载现有应用。
- 安装应用程序并连接到 Google fit。
- 检查 google fit app 并确保您的应用被列为连接的应用(... > 设置 > 连接的应用 > 连接的应用和设备
有关详细信息,请查看此 thread and this SO question。
我知道回答需要一些时间,但在 Android Wear Dev Preview 4 中,Google 添加了 wear 2.0 authentication。可穿戴设备似乎不支持其他登录 google 服务的方式。