DriveId无法在本地存储?

时间:2014-06-05 11:13:45

标签: android google-drive-api google-play-services

当使用本地保存的编码字符串并从数据库中解码回DriveId时,我收到以下消息。

Attempt to compare invalid DriveId detected. Has local storage been cleared?

虽然它可以引用文件。

为什么我保存它们是因为当我通过Google Play服务启动上传并且文件尚未上传时,DriveId没有资源ID,因此我存储的DriveId没有ResourceId。然后,当文件上传时,我将DriveId替换为新的 - 具有资源ID。

问题是。我应该只在可能的情况下存储资源ID吗?

1 个答案:

答案 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不是文件唯一的,每个设备上都不同。