android应用程序中的设置文件

时间:2017-07-13 09:36:13

标签: java android

首先,我需要一个如何在Android应用程序中存储私人设置的建议。此设置将包含应用程序登录REST API所需的server / login / password / clientId。将来可能会更改设置,因此我需要能够“轻松”在所有设备上更新它的解决方案 - 应用程序将用于+700客户端电话。手机没有SD卡。

我的概念是将此设置存储在散列文本文件中。我可以将准备好的设置文件发送到客户端,然后客户端通过USB将其复制到设备存储器到给定位置 - 主存储器中的新文件夹,其中包括Alarms,DCIM等。

这是一个很好的解决方案吗?

检查存储的示例方法 - 在我的测试手机上都返回false:

    public boolean isExternalStorageWritable() {
      String state = Environment.getExternalStorageState();
      if (Environment.MEDIA_MOUNTED.equals(state)) {
        return true;
      }
      return false;
    }

    public boolean isExternalStorageReadable() {
      String state = Environment.getExternalStorageState();
      if (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
        return true;
      }
      return false;
    }

如何在android外部存储器(不是SD卡)中保存文件?

1 个答案:

答案 0 :(得分:0)

这里有很棒的文档: https://developer.android.com/training/basics/data-storage/files.html

请阅读它以了解外部存储并不意味着Android的SD卡。即使没有SD卡的手机也会有外部存储

您的清单中需要此权限:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

(对我来说,阅读许可也有效......)

然后,对于较新的Android版本,您需要请求权限

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (PackageManager.PERMISSION_GRANTED != this.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
            requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, READ_EXTERNAL_STORAGE_RIGHT_REQUEST_CODE);
        }
    }

然后我使用getExternalFilesDir来获取我的应用程序目录来存储一些文件。 https://developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.String)

但是由于你不想要可移动存储,你最好使用getFilesDir https://developer.android.com/reference/android/content/Context.html#getFilesDir()

PS:我刚注意到该文档说自KitKat以来你不需要任何访问应用程序目录的权限。稍后可以看一下......