Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android应用程序中的设置文件_Java_Android - Fatal编程技术网

Java android应用程序中的设置文件

Java android应用程序中的设置文件,java,android,Java,Android,首先,我需要一个如何在Android应用程序中存储私有设置的建议。此设置将包含应用程序登录RESTAPI所需的服务器/登录名/密码/客户端ID。设置可能会在将来更改,所以我需要一个解决方案,可以“轻松”在所有设备上更新它-该应用程序将用于+700客户端手机。手机没有SD卡 我的概念是将这些设置存储在散列文本文件中。我可以将准备好的设置文件发送到客户机,然后客户机通过USB将其复制到设备内存中的给定位置-主存储器中的新文件夹,在该文件夹中存储报警、DCIM等信息 这是一个好的解决方案吗 检查存储的

首先,我需要一个如何在Android应用程序中存储私有设置的建议。此设置将包含应用程序登录RESTAPI所需的服务器/登录名/密码/客户端ID。设置可能会在将来更改,所以我需要一个解决方案,可以“轻松”在所有设备上更新它-该应用程序将用于+700客户端手机。手机没有SD卡

我的概念是将这些设置存储在散列文本文件中。我可以将准备好的设置文件发送到客户机,然后客户机通过USB将其复制到设备内存中的给定位置-主存储器中的新文件夹,在该文件夹中存储报警、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卡)中?

这里有一个很棒的文档:

请阅读它以理解外部存储并不意味着android的SD卡。即使是没有sd卡的手机也会有外部存储器

您的清单中需要此权限:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
然后我使用getExternalFilesDir获取应用程序目录以存储一些文件。

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


附言:我刚刚注意到文件上说,自从KitKat以来,你不需要任何权限来访问你的应用程序目录。请稍后再看一看…

为什么不为此使用中央服务器,并在用户首次登录时向服务器发出请求,然后将设置存储在本地。这样,当您必须更改设置时,您只需在服务器上更改它们,它将在所有设备上更新,而不是向700多台设备发送设置文件
    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);
        }
    }