2

我开发了基于 Sip 的应用程序,用于拨打和接听电话。此应用程序还包括聊天功能。

我的应用程序在三星 Galaxy y 和索尼爱立信的 ICS 版本上运行良好。但是在三星 Galaxy S2 上使用该应用程序时,用户未注册。它在Asterisk上给了我错误的密码错误。

这意味着它无法从 sharedpreferences 中获取值,或者它不会将值存储在设备上。

4

2 回答 2

2

是的,这是一个巨大的痛苦,但据我所知,你不能在三星 Galaxy S1/S2 手机上使用 SharedPreferences。没有解释 :( 巨大的痛苦 创建 SharedPreferences 时出错 - 无法为 SharedPreferences 文件创建目录

不知道看起来确实可以节省的应用程序如何绕过它-也许他们使用数据库。

我是如何做到的: 创作:

Editor editor = getSharedPreferences(Constants.SaveDataName, MODE_PRIVATE).edit();

editor.putString(Constants.SaveDataName, xmlString);
editor.commit();

加载:

getSharedPreferences(Constants.SaveDataName, MODE_PRIVATE).getString(Constants.SaveDataName, "");

如果相关:这是在服务中。

于 2012-06-01T10:08:31.453 回答
0

@juned,现在我查看了代码,我没有发现任何特别之处。无论如何,这里有一些与 sharedPref 相关的代码部分。

设置 SharedPref

    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    final SharedPreferences.Editor editor = preferences.edit();
    editor.putFloat("longitude", (float)location.getLongitude());
    editor.putFloat("latitude", (float)location.getLatitude());
    editor.commit();

并获取

    sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    GeoPoint userLocationPoint = new GeoPoint((int) (sharedPreferences.getFloat("latitude", (float) 0.0) * 1E6),
            (int) (sharedPreferences.getFloat("longitude", (float) 0.0) * 1E6));
于 2012-06-04T18:23:28.013 回答