我正在使用这段代码,但当我从首选项获得位置时,位置返回如下所示...
位置[mprovider=存储,Mtime=0,mlatitude=30.0,montilunde=76.0,mhasaltitude=false,maltitude=0.0,mhasspeed=false,mspeed=0.0,mhasbearing=false,mbearing=0.0,mhasaccuracy=false,maccuracy=0.0,mextras=null]
/** Store Location object in SharedPreferences */
public void storeLocation(Context context, Location location) {
SharedPreferences settings;
Editor editor;
try {
JSONObject locationJson = new JSONObject();
locationJson.put(LATITUDE, location.getLatitude());
locationJson.put(LONGITUDE, location.getLongitude());
settings = context.getSharedPreferences(PREFS_NAME,Context.MODE_PRIVATE);
editor = settings.edit();
editor.putString(KEY_LOCATION, locationJson.toString());
editor.commit();
Log.i("location_util_store", "Location" + location);
} catch (Exception e) {
e.printStackTrace();
}
}
/** Retrieve Location object from SharedPreferences
* @return */
public Location getPrevLocation(Context context) {
SharedPreferences settings;
try {
settings = context.getSharedPreferences(PREFS_NAME,Context.MODE_PRIVATE);
String jsonLocation = settings.getString(KEY_LOCATION, null);
if (jsonLocation != null) {
JSONObject locationJson = new JSONObject(jsonLocation);
Location location = new Location("STORAGE");
location.setLatitude(locationJson.getInt(LATITUDE));
location.setLongitude(locationJson.getInt(LONGITUDE));
Log.i("location_util_get", "Location" + location);
return location;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
最佳解决方案:提取位置lat和long参数为字符串,并将它们保存在prefs中。根据您的使用情况,您也可以从位置提取其他信息。
正在保存位置:-
if (location == null) {
sharedPreferences.edit().removeKey("LOCATION_LAT").apply();
sharedPreferences.edit().removeKey("LOCATION_LON").apply();
sharedPreferences.edit().removeKey("LOCATION_PROVIDER").apply();
} else {
sharedPreferences.edit().putString("LOCATION_LAT", String.valueOf(location.getLatitude())).apply();
sharedPreferences.edit().putString("LOCATION_LON", String.valueOf(location.getLongitude())).apply();
sharedPreferences.edit().putString("LOCATION_PROVIDER", location.getProvider()).apply();
}
重新调整位置:-
String lat = sharedPreferences.getString("LOCATION_LAT", null);
String lon = sharedPreferences.getString("LOCATION_LON", null);
Location location = null;
if (lat != null && lon != null) {
String provider = sharedPreferences.getString("LOCATION_PROVIDER", null);
location = new Location(provider);
location.setLatitude(Double.parseDouble(lat));
location.setLongitude(Double.parseDouble(lon));
}
return location;
坏的解决方案:改用Gson持久化您的位置:
String json = location == null ? null : new Gson().toJson(location);
sharedPreferences.edit().putString("Location", json).apply();
正在检索位置:
String json = sharedPreferences.getString("location", null);
return json == null ? null : new Gson().fromJson(json, Location.class);
正如这个答案中提到的。
这不应该崩溃,但它在某些设备上崩溃。正如这里提到的。
我正在尝试使用RSA加密数据。到目前为止一切都很好。我可以生成私钥-公钥,我可以加密和解密字符串成功。现在我要在SharedPreference中存储公钥。我可以把它存储为字符串。我可以把它作为字符串检索出来。我需要把它转换成密钥,然后传递给密码。未发生从字符串到原始格式的转换。 这是我试过的 这里,我面临的问题是cipher.init(cipher.encrypt_mode,publicKey)
在我的活动中,用户有一个他选择的图像数组,然后我想将它们存储在首选项中。然后用户离开活动,回来时,我希望这些图像仍然加载到ImageView中。我试图使用Gson来完成这一点,但我遇到了麻烦,看不出我做错了什么。希望外界的洞察力能帮助我找到这个显而易见的答案,我只是没有看到。 谢谢你。 这是我到目前为止的代码。
我正在尝试创建一个新的类,它将包含用于Selenium测试的所有变量。以下是课程: 类:VariablesRepo: 我们如何解决这个问题并从Repo类导入变量? 更新:我得到的errorstack是:
问题内容: 我将如何存储my_dict并使用Redis进行检索。例如,以下代码不起作用。 问题答案: 您可以通过(使用来设置多个键)来做到这一点。
我有一个Base64编码的字符串(这是AES加密的字符串)。我正试图将它存储在Firebase存储,然后从它下载。 我尝试过多种选择,例如 这不会在存储中保留base64字符串,而是将其转换为整数。我还尝试提供{contenttype:“application/base64”},但是putString似乎不起作用。 我只是在寻找一个非常简单的base64编码字符串到firebase存储的上传和下载
问题内容: 如何在SQLite中存储和获取图像以及以什么格式保存图像?如果用一个例子来解释会更有用。 问题答案: 图像本身无法存储到数据库列中,但是您可以先将其转换为字符串,然后再存储。该字符串称为base64字符串。据我所知,任何图像都可以转换为相反的图像。 编码为基数64: 现在,您的UIImage对象将转换为String!将strBase64保存到SQLite DB。记住要用作列类型,因为此