【问题标题】:Config file on AndroidAndroid上的配置文件
【发布时间】:2018-12-26 17:06:29
【问题描述】:

Android 新手,正在开发适用于 Vuzix M300s 的应用程序。该应用程序需要访问一个包含 Web 服务器 IP 地址和端口的文件。 我相信我需要使用 adb shell 在 M300s 上手动放置一个预配置文件,但我无法确定将其放置在设备上的哪个位置,以便应用程序可以找到它。 通过 Android Studio 3.1.3,我在 assets 文件夹中放置了一个可以打开和读取的文件,但是使用 adb shell 我找不到它。 (对于 ls 之类的很多操作,我都被拒绝了许可)。 我如何在那里获得文件?还是有更好的办法?

【问题讨论】:

  • 如果这是你不希望人们发现的信息,我根本不会把它放在设备上

标签: android file config


【解决方案1】:

请注意,您项目中的assets 文件夹仅存在于您的开发机器上。当您构建应用程序时,此文件夹的内容会打包到 APK 文件中。为了读取这些文件中的任何一个,您需要使用Context.getAssets(),如read file from assets 中所述。

【讨论】:

  • 感谢您提供有关资产的信息。我也有同样的怀疑,我认为生的也是如此。那么我可以在哪里放置应用程序可以打开的预定义文件?
  • @Allan raw 类似,因为它不是设备上的目录。不过,访问原始资产使用不同的函数调用。其中任何一个都可用于提供与您的应用程序一起部署的静态文件,并且应该适合您的目的。
  • @Allan 另一种选择是将其托管在服务器上,您的应用在安装后向它发出 HTTP 请求。
  • 问题是,每次安装都是独一无二的,会联系该公司独有的 Web 服务器/端口。我不想为每次安装制作不同的 APK。
【解决方案2】:

想通了。
为应用程序将文件移动/复制到 M300s

  1. 将文件移动到设备(在 sdcard 文件夹中)
    • .\adb push C:\temp\file.cfg /sdcard/
  2. 将文件从 /sdcard/ 移动到所需位置
    • a) 进入外壳
      • '> .\adb 外壳
    • b) 更改应用程序的权限
      • $ run-as com.foobar.appname
    • c) 将文件复制到应用程序的“文件”文件夹中
      • $ cp /sdcard/file.cfg 文件/

在我的应用中,我可以通过

阅读此内容
FileInputStream fin = openFileInput("file.cfg");
InputStreamReader rdr = new InputStreamReader(fin);
char[] inputBuffer = new char[100];
int charsRead = rdr.read(inputBuffer);
String fileContents = new String(inputBuffer);
rdr.close();
Log.i(method, "charsRead: " + charsRead);
Log.i(method, "fileContents: " + fileContents);

【讨论】:

    猜你喜欢
    • 2012-03-31
    • 2020-10-11
    • 1970-01-01
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    相关资源
    最近更新 更多