当使用本地保存的编码字符串并从数据库中解码回DriveId
时,我收到以下消息。
Attempt to compare invalid DriveId detected. Has local storage been cleared?
虽然它可以引用文件。
为什么我保存它们是因为当我通过Google Play服务启动上传并且文件尚未上传时,DriveId
没有资源ID,因此我存储的DriveId没有ResourceId。然后,当文件上传时,我将DriveId替换为新的 - 具有资源ID。
问题是。我应该只在可能的情况下存储资源ID吗?
答案 0 :(得分:0)
import javax.swing.*;
import java.awt.*;
import javax.swing.border.*;
import java.io.*;
import javax.imageio.ImageIO;
import java.util.*;
import java.lang.*;
public class Class extends JFrame{
public Class(){
JPanel p1 = new JPanel(null);
JPanel p2 = new JPanel();
JButton jbt = new JButton("More Info");
JButton jbt2 = new JButton("Play Game");
p1.setBorder(new TitledBorder("Challenge"));
p2.setBorder(new TitledBorder("Instruction: \n"));
p2.add(jbt,BorderLayout.SOUTH);
p2.add(jbt2,BorderLayout.SOUTH);
p2.setBounds(1000, 570, 250, 90);
p1.add(p2);
add(p1);
}
Image image;
public void ImagePanel() {
try {
image = ImageIO.read(new File("background.jpg"));
} catch (IOException ex) {
System.out.println("No image");
}
}
public void paintComponent(Graphics g) {
g.drawImage(image, 0, 0, null);
}
public static void main(String[] args) {
Class frame = new Class();
frame.setTitle("Title");
frame.setSize(1900, 1200);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
,即使在离线提交中也会得到DriveId
。但是,如果不在DriveId
上提交更改,则无法获得ResourseId
。提交更改后收到Google Drive
后,您可以将其替换为ResourseId
。
如果您想从DriveId
获取DriveId
,则可以使用以下代码: -
ResourseId
注意: - String resourseId = "xxxxxxxxxxxxx"
Drive.DriveApi.fetchDriveId(mGoogleApiClient,resourseId).setResultCallback(idCallBack);
private ResultCallBack<DriveApi.DriveResult> idCallBack = new ResultCallback<DriveApi.DriveIdResult>() {
@Override
public void onResult(DriveApi.DriveIdResult driveIdResult) {
msg.Log("onResult");
DriveId id = driveIdResult.getDriveId(); //Here you go :)
}
}
是永久且唯一的。 ResourseId
不是文件唯一的,每个设备上都不同。