Javascript 在Android web app中查找SD卡路径

Javascript 在Android web app中查找SD卡路径,javascript,cordova,android-sdcard,Javascript,Cordova,Android Sdcard,我正在使用Cordova(又名Phonegap)开发一个Android“浏览器内”应用程序,运行在设备本身上。在我的模拟器中,我读/写文件到SD卡没有问题,但我突然意识到,在现实世界中,我不能指望它安装在/SD卡上,特别是因为一位朋友指出,有些设备实际上可能有多个 在四处搜寻之后,我看到了很多关于如何在Java中开发应用程序时找到SD卡路径的答案,但没有提到如何在Javascript中执行相同的操作。我想知道是否有人能为我指出正确的方向?这就是为什么您使用: window.requestFile

我正在使用Cordova(又名Phonegap)开发一个Android“浏览器内”应用程序,运行在设备本身上。在我的模拟器中,我读/写文件到SD卡没有问题,但我突然意识到,在现实世界中,我不能指望它安装在/SD卡上,特别是因为一位朋友指出,有些设备实际上可能有多个

在四处搜寻之后,我看到了很多关于如何在Java中开发应用程序时找到SD卡路径的答案,但没有提到如何在Javascript中执行相同的操作。我想知道是否有人能为我指出正确的方向?

这就是为什么您使用:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, onError);
在onSuccess回调中获得的文件系统对象将具有一个root属性,该属性是一个DirectoryEntry,在大多数情况下,它指向Android上的/sdcard目录。此方法调用Java代码来确定正确的外部存储目录,并且它应该与您的一致。

这就是为什么您使用:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, onError);

在onSuccess回调中获得的文件系统对象将具有一个root属性,该属性是一个DirectoryEntry,在大多数情况下,它指向Android上的/sdcard目录。此方法调用Java代码来确定正确的外部存储目录,并且该目录应与您的一致。

如果您试图使用PhoneGap保存照片,则应使用以下属性:

destinationType : Camera.DestinationType.FILE_URI, saveToPhotoAlbum: true

保存在此路径中的图像:/mnt/sdcard/DCIM/camera

完整的代码如下所示:

    navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, 
    destinationType: destinationType.FILE_URI,
    sourceType: source });

如果您试图使用PhoneGap保存照片,则应使用以下属性:

destinationType : Camera.DestinationType.FILE_URI, saveToPhotoAlbum: true

保存在此路径中的图像:/mnt/sdcard/DCIM/camera

完整的代码如下所示:

    navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, 
    destinationType: destinationType.FILE_URI,
    sourceType: source });

谢谢我最初的代码几乎是正确的,但这应该会使它更加健壮。坏消息是,这并不一致。它似乎正确地获得了到/mnt/sdcard的路径,但不幸的是,某些设备具有到该卡的不同路径,它无法解析该路径。(一个特定的用户有一个三星Galaxy S3,其中可移动卡作为extSD安装。但是文件系统请求仍然会发送到sdcard。那么这就是该手机上的一个错误,因为它没有返回正确的Environment值。getExternalStorageDirectory()这是我们用来确定存储位置的Android API调用。谢谢。我的原始代码几乎正确,但这应该会使它更健壮。坏消息是,这并不一致。它似乎正确地获得了/mnt/sdcard的路径,但不幸的是,一些设备有不同的路径到该卡,它无法解析。(一个特定的用户有一个三星Galaxy S3,其中可移动卡作为extSD安装。但是文件系统请求仍然发送到sdcard。那么这就是该手机上的一个错误,因为它没有返回正确的Environment.getExternalStorageDirectory()值,这是我们用来确定存储位置的Android API调用。