【发布时间】:2018-08-13 01:41:16
【问题描述】:
我正在尝试开发一个 Android 穿戴应用程序并从移动助手活动中传递一个资产。我遵循了传递资产的官方文档 - Transferring Assets,但在尝试从 onDataChanged 函数中传递的资产加载位图时出现以下错误。请注意,代码在传递 String 值时有效。代码如下:
public Bitmap loadBitmapFromAsset(Bitmap bitmap, Asset asset) {
if (asset == null) {
throw new IllegalArgumentException("Asset must be non-null");
}
ConnectionResult result = mGoogleApiClient.blockingConnect(5000, TimeUnit.MILLISECONDS);
if (!result.isSuccess()) {
return null;
}
InputStream assetInputStream = Wearable.DataApi.getFdForAsset(mGoogleApiClient, asset).await().getInputStream();
mGoogleApiClient.disconnect();
if (assetInputStream == null) {
return null;
}
if (bitmap != null) {
bitmap.recycle();
bitmap = null;
}
bitmap = BitmapFactory.decodeStream(assetInputStream);
return bitmap;
}
我得到的错误如下:
java.lang.IllegalStateException: 不能在 UI 线程上调用blockingConnect 在 com.google.android.gms.common.internal.zzx.zza(未知来源) 在 com.google.android.gms.common.api.internal.zzj.blockingConnect(未知来源) ...
关于造成这种情况的任何想法?
【问题讨论】:
标签: android assets wear-os illegalstateexception