【问题标题】:Finding path to SD card in Android web-app在 Android 网络应用程序中查找 SD 卡的路径
【发布时间】:2012-09-07 14:41:42
【问题描述】:

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

在四处寻找之后,我可以看到很多关于如何在 Java 中开发应用程序时找到 SD 卡路径的答案,但没有提到如何在我的 Javascript 中做同样的事情。我想知道是否有人能指出我正确的方向吗?

【问题讨论】:

    标签: javascript cordova android-sdcard


    【解决方案1】:

    这就是你使用的原因:

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

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

    【讨论】:

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

    如果您尝试使用 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 });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      • 2018-10-12
      相关资源
      最近更新 更多