在安卓系统中安装之前推送SharedPreference文件



我需要为我的android应用程序设置一些配置,比如服务器IP和端口,应用程序应该使用它们进行通信。我该如何添加?

我想过使用共享引用。在安装应用程序之前,我如何推送带有配置的共享引用文件。

第页。S.我不想在代码库中硬编码IP和PORT。

任何建议都会很有帮助。

感谢

这是不可能的。另一种选择是将应用程序附带一个json配置文件,并将其放在资产文件夹中

并读取文件的内容以预先填充所需的值。

try {
            
InputStream inputStream = mContext.getAssets().open(mContext.getPackageName() + ".json");
    
            
int size = inputStream.available();
    
byte[] buffer = new byte[size];
    
    
if (inputStream.read(buffer) != size) {
    
throw new IndexOutOfBoundsException();
    
}
    
inputStream.close();
    
    
JSONObject jsonObject = new JSONObject(new String(buffer, StandardCharsets.UTF_8));
    
server_ip = jsonObject.getString("server_ip");
server_port = jsonObject.getString("server_port");
    
} catch (Exception e) {
    
e.printStackTrace();
    
}
    
}

我个人会把代码放在一个扩展Application的类中,所以它只被调用一次。

在安装之前不能推送任何东西。但是,您可以在SharedPreferences中存储必要的数据,并随时进行检索。将字符串数据写入SharedPreferences或从SharedPreferences读取字符串数据;

private static final String SHARED_PREFS = "sharedPrefYourApp";
private static final String TEXT = "IP/PORT";
private static final String KEY = "IP_PORT_KEY";
public static void saveData(Context context) {
SharedPreferences sharedPreferences = 
context.getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(KEY, TEXT);
editor.apply();
}
public static String loadData(Context context) {
SharedPreferences sharedPreferences = 
context.getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
String text = sharedPreferences.getString(KEY, "");
return text;
}

另一种方法是使用类似Firebase Remote Config的东西,然后动态地为应用程序提供配置。将这种方法视为连接到静态位置的应用程序;安全地下载配置,然后对这些配置作出反应,并安全地连接到最终服务。

如果你想确保这一点的安全,我建议你使用Android钥匙链而不是SharedPreferences——我几乎不使用SharedPreferences(尽管这是一个首选项,或者取决于安全性和用例需求(。

这在Android中现在可以通过"托管配置";

https://developer.android.com/work/managed-configurations

相关内容

  • 没有找到相关文章

最新更新