如何从MainActivity添加到network_security_config

3
我有一个应用程序,通过OkHTTP从Web服务器获取一些值,并在MainActivity上显示。现在我想将这些接收到的值添加到network_security_config.xml中。
为了简单起见,在MainActivity中设置一个字符串等于YZPgTZ+woNCCCIW3LH2CxQeLzB/1m42QcCTBSdgayjs= 现在我想在network_security_config.xml中的VALUE_I_WANT_TO_ADD处显示此字符串。我该怎么做?我可以使用jdom吗? network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
  <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="true">google.com</domain>
      <pin-set expiration="2020-01-01">
  <pin digest="SHA-256">MbZtXtN6X71CNe/UJzKFH0UGnPWGux5/zo5BRaJpkvI=</pin>

<pin digest="SHA-256">VALUE_I_WANT_TO_ADD</pin>
      </pin-set>
  </domain-config>
</network-security-config>

您不能在运行时修改网络安全配置。 - CommonsWare
清单文件是不可变的,我认为你无法在运行时更改它。 - Lakhwinder Singh
@CommonsWare 我知道在res文件夹里的XML文件不能修改,但是我应该如何添加或者更新一些内容呢? - wavesonthaw
您不能在运行时修改资源文件夹中的任何文件,您想保存一些东西以便以后使用吗? - Vivek Singh
“但是我怎么添加或更新呢?”--您无法进行此操作。没有任何API供您更改网络安全配置,无论是以文件形式还是以该数据的内存表示形式。 - CommonsWare
@VivekSingh 我的意思是,一旦我在xml中得到了那个字符串,下次运行时我想要使用它,或者至少将其添加进去。 - wavesonthaw
1个回答

1

从您的问题中可以看出,您希望将字符串保存以备后用,因此可以使用SharedPreferences来保存String以备后用。

final String TAG = "some final text";
sharedPref = new SharedPreferences();
sharedPref = getSharedPreferences(TAG,Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPref.edit();

    editor.putString("key","your_string");
    editor.apply();

稍后,当您再次运行应用程序时,您可以按以下方式从SharedPreferences中检索字符串。
    String value = sharedPref.getString("key","default_value");

以便日后使用,我该如何将它添加到 XML 中? - wavesonthaw
你的 XML 文件位于哪里? - Vivek Singh
XML文件位于Androidwebviewer\app\src\main\res\xml\network_security_config.xml。 - wavesonthaw
1
你不能在安卓应用程序运行时通过任何方式修改应用程序源文件结构中的任何文件。你必须采用其他方法来解决你的问题。 - Vivek Singh
谢谢,我会尝试另一种方法。感谢您的建议。 - wavesonthaw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接