我开发了基于Sip的应用程序,用于拨打和接听电话。聊天功能也包含在此应用程序中。
我的应用程序在三星Galaxy y和索尼爱立信的ICS版本上运行良好。但在使用Samsung Galaxy S2上的应用程序时,用户未注册。我在Asterisk上错误地输入密码错误。
这意味着它无法从共享偏好中获取值,或者它不会将值存储在设备上。
答案 0 :(得分:2)
是的,这是一个巨大的痛苦,但据我所知,你不能在三星Galaxy S1 / S2手机上使用SharedPreferences。没有解释:(巨大的痛苦 Error creating SharedPreferences - couldn't create directory for SharedPreferences file
不知道看起来像保存的应用程序如何绕过它 - 也许他们使用数据库。
我是怎么做到的: 创建:
Editor editor = getSharedPreferences(Constants.SaveDataName, MODE_PRIVATE).edit();
editor.putString(Constants.SaveDataName, xmlString);
editor.commit();
装载:
getSharedPreferences(Constants.SaveDataName, MODE_PRIVATE).getString(Constants.SaveDataName, "");
如果相关:这是在服务中。
答案 1 :(得分: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));