0

https://stackoverflow.com/a/9172615/2653579

public class Calc extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";

@Override
protected void onCreate(Bundle state){
   super.onCreate(state);
   . . .

   // Restore preferences
   SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
   String ipAddress = settings.getString("IPAddress", "");
   int port = settings.getInt("port", 0);
   int title = settings.getString("Title", "");
}

我发现了从配置文件中读取值的代码,但我无法让它从 SD 卡中读取文件。我试过这样:

static File GPSCfgFile = new File(Environment.getExternalStorageDirectory()
            + "/Config/GPSLogService.cfg");
    public static final String PREFS_NAME = String.valueOf(GPSCfgFile);

当我开始服务时,它意外停止。这是在 logcat 中:

FATAL EXCEPTION: main
GPSLogService.cfg.xml contains a path separator

我怎样才能让它从 SD 卡中读取该文件?

4

1 回答 1

0

您可以使用以下方法创建文件String.valueOf():如果您使用的是 XML 配置文件,则可以查看此链接以了解如何操作:

http://developer.android.com/training/basics/network-ops/xml.html#instantiate

http://www.vogella.com/articles/AndroidXML/article.html

如果您使用的是纯文本文件,可以在这里查看:

如何从 Android 的 SD 卡中读取文本文件?

在阅读配置文件时,您必须将每个值保存在一个单独的SharedPreferences

SharedPreferences prefs = getSharedPreferences(ConstantsUtils.PREFERENCES,
            Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("IPAddress", "Tag value" );
editor.commit();
于 2013-08-06T20:16:45.247 回答