在带有端点的Android应用程序中显示Google数据存储Blob图像
我不确定我这样做是否正确,所以我想征求社区的意见。我的模型是这样制作的:在带有端点的Android应用程序中显示Google数据存储Blob图像,android,google-app-engine,google-cloud-datastore,google-cloud-endpoints,Android,Google App Engine,Google Cloud Datastore,Google Cloud Endpoints,我不确定我这样做是否正确,所以我想征求社区的意见。我的模型是这样制作的: @Entity public class Info { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Key key; private Blob logo; public Info(Blob logo) { super(); this.logo =
@Entity
public class Info {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Key key;
private Blob logo;
public Info(Blob logo) {
super();
this.logo = logo;
}
public byte[] getLogo() {
if (logo == null) {
return null;
}
return logo.getBytes();
}
public void setLogo(byte[] bytes) {
this.logo = new Blob(bytes);
}
}
info.setProperty("logo", new Blob(imageInByte));
我将水滴图像设置为:
@Entity
public class Info {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Key key;
private Blob logo;
public Info(Blob logo) {
super();
this.logo = logo;
}
public byte[] getLogo() {
if (logo == null) {
return null;
}
return logo.getBytes();
}
public void setLogo(byte[] bytes) {
this.logo = new Blob(bytes);
}
}
info.setProperty("logo", new Blob(imageInByte));
在生成客户端端点库之后,我的blob映像被定义为String,这对我来说很奇怪。我的客户端上的信息对象有以下方法:
@com.google.api.client.util.Key
private java.lang.String logo;
/**
* @see #decodeLogo()
* @return value or {@code null} for none
*/
public java.lang.String getLogo() {
return logo;
}
/**
* @see #getLogo()
* @return Base64 decoded value or {@code null} for none
*
* @since 1.14
*/
public byte[] decodeLogo() {
return com.google.api.client.util.Base64.decodeBase64(logo);
}
/**
* @see #encodeLogo()
public Info setLogo(java.lang.String logo) {
this.logo = logo;
return this;
}
/**
* @see #setLogo()
*
* <p>
* The value is encoded Base64 or {@code null} for none.
* </p>
*
* @since 1.14
*/
public Info encodeLogo(byte[] logo) {
this.logo = com.google.api.client.util.Base64.encodeBase64URLSafeString(logo);
return this;
}
但我在LogCat中收到以下错误:
I/System.out(26730): resolveUri failed on bad bitmap uri: android.graphics.Bitmap@40fba0e0
我做错了什么?感谢您的建议:)字符串是字节数组的base64编码。但是base64编码器
com.google.api.client.util.base64.encodeBase64URLSafeString()
似乎给出了错误的结果
我使用了另一个base64编码器,如中所示,操作成功
//byte[] Data ;
StringBuffer out = new StringBuffer();
out.append(Base64Coder.encode(Data, 0, Data.length));
note.setData(out.toString());