Java 从Google Drive下载带有URI的文件,在Android中不使用Google Drive API

Java 从Google Drive下载带有URI的文件,在Android中不使用Google Drive API,java,android,download,google-drive-api,uri,Java,Android,Download,Google Drive Api,Uri,我根本不想让客户做任何身份验证,比如登录他的电子邮件或其他任何事情。客户端必须在单击时获取所有共享文件 在很多地方都有这样的说法,即可以通过HTTP GET来实现。我在GoogleDrive中尝试了不同类型和大小的文件,但是我的代码给了我大约50KB的文件,这当然是不可读的 例如: 源文件是一个“Poocha.mp3” 我有谷歌为这个文件返回的共享ID 我已验证此ID(即可共享字符串)是否可共享 我已取得Android清单中的所有权限 <uses-permission android:na

我根本不想让客户做任何身份验证,比如登录他的电子邮件或其他任何事情。客户端必须在单击时获取所有共享文件

在很多地方都有这样的说法,即可以通过HTTP GET来实现。我在GoogleDrive中尝试了不同类型和大小的文件,但是我的代码给了我大约50KB的文件,这当然是不可读的

例如:

  • 源文件是一个“Poocha.mp3”

  • 我有谷歌为这个文件返回的共享ID

  • 我已验证此ID(即可共享字符串)是否可共享

  • 我已取得Android清单中的所有权限

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
    <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.READ_CALENDAR" />
    <uses-permission android:name="android.permission.WRITE_CALENDAR" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
    有人能指出这个问题吗?

    我已经用我的驱动器帐户上的一个共享文件尝试了你的代码,它下载了这个文件。我从Google Drive获得的共享URL的格式如下:

    https://drive.google.com/open?id=UUjBUTaQyakU0B0HGOaFKlT5geXN
    
    除此之外,您的代码可以不经修改地工作。(顺便说一句,那不是真实的身份证)

    我希望这有帮助


    更新

    上述答案虽然正确,但不是你的问题。我刚刚在安装了Google Drive的Android设备上尝试了你的URL,Drive告诉我文件的所有者“破坏”了文件。当我在浏览器中尝试相同的url时,它下载了OK

    显然,该文件可供下载,但驱动器应用程序似乎进行了额外的检查,以确保该文件没有被破坏。浏览器不会也不能进行同样的检查

    从垃圾箱中移动文件或尝试其他文件。它应该可以工作。

    我已经用我的驱动器帐户上的共享文件尝试了你的代码,它可以下载文件了。我从Google Drive获得的共享URL的格式如下:

    https://drive.google.com/open?id=UUjBUTaQyakU0B0HGOaFKlT5geXN
    
    除此之外,您的代码可以不经修改地工作。(顺便说一句,那不是真实的身份证)

    我希望这有帮助


    更新

    上述答案虽然正确,但不是你的问题。我刚刚在安装了Google Drive的Android设备上尝试了你的URL,Drive告诉我文件的所有者“破坏”了文件。当我在浏览器中尝试相同的url时,它下载了OK

    显然,该文件可供下载,但驱动器应用程序似乎进行了额外的检查,以确保该文件没有被破坏。浏览器不会也不能进行同样的检查


    从垃圾箱中移动文件或尝试其他文件。应该行。

    你解释了什么@Cheticampu这不是真实身份是什么意思@Cheticamp右键单击链接并在新窗口中打开它,文件将被下载。这在我的代码中不起作用。我只在下载驱动器共享链接时遇到问题。否则代码就会起作用。这就是我的问题的重点。如果你能详细阐述一下,那就太好了。我已经添加了我的清单权限。@masoomnazirsanadi抱歉,我的声明不清楚。我只是说我在回答中给出的id不是我文件的真实id。我想我发现了你的问题。我很快会发布我的答案的更新。谢谢你的努力。我开始知道出了什么问题。我以后再解释清楚。你解释了什么@Cheticampu这不是真实身份是什么意思@Cheticamp右键单击链接并在新窗口中打开它,文件将被下载。这在我的代码中不起作用。我只在下载驱动器共享链接时遇到问题。否则代码就会起作用。这就是我的问题的重点。如果你能详细阐述一下,那就太好了。我已经添加了我的清单权限。@masoomnazirsanadi抱歉,我的声明不清楚。我只是说我在回答中给出的id不是我文件的真实id。我想我发现了你的问题。我很快会发布我的答案的更新。谢谢你的努力。我开始知道出了什么问题。我以后再解释清楚。