本周我收到了来自Google的安全提醒,告诉我升级我的Android版cordova应用程序.来自谷歌的电子邮件如下 -
这是一个通知,您的--apps ids--构建在包含安全漏洞的Apache Cordova版本上.这包括高严重性的跨应用程序脚本(XAS)漏洞.在某些情况下,可以远程利用易受攻击的应用程序来窃取敏感信息,例如用户登录凭据.
您应该尽快升级到Apache Cordova 3.5.1或更高版本.有关漏洞的更多信息以及有关升级Apache Cordova的指导,请参阅http://cordova.apache.org/announcements/2014/08/04/android-351.html.
请注意,具有漏洞的应用程序可能会将用户置于危险之中,可能被视为"危险产品",并且可能会从Google Play中删除.
所以,我需要查看我的cordova应用程序的当前版本.我可以使用npm update -g cordovaWindows cmd 升级我的cordova安装.问题是如何检查我的cordova应用程序的当前平台(在我的情况下是android)版本?
我有两个使用相同内容提供程序的应用程序,但我不能在两个应用程序中放置相同的内容提供程序 - 它显示INSTALL_FAILED_CONFLICTING_PROVIDER错误.所以我把我的内容提供商放在第三个.apk中,并从两个应用程序中使用它,它运行良好.
现在问题是 - 必须先安装内容提供程序apk,然后才能在设备上安装这两个应用程序中的任何一个.否则,它会在安装期间显示Provider not found错误.
那么,在安装任何其他apks之前,如何确保安装提供程序apk?
有没有办法将内容提供程序apk与其他两个apks单独合并,因此它们将作为两个应用程序一起安装,并且不会显示INSTALL_FAILED_CONFLICTING_PROVIDER错误?
我需要将内容提供程序apk与两个应用程序合并,因为用户可能无法安装这两个应用程序,也可能将它们安装在单个设备上.
假设我在android资源中存储了一个二维数组,如下所示.如何在像Arraylist这样的java集合中获取它们?
<resources>
<string-array name="countries_array">
<item>
<name>Bahrain</name>
<code>12345</code>
</item>
<item>
<name>Bangladesh</name>
<code>54545</code>
</item>
<item>
<name>India</name>
<code>54455</code>
</item>
</string-array>
</resources>
Run Code Online (Sandbox Code Playgroud)
例如,在一维数组的情况下,我们可以使用它
getResources().getStringArray(R.array.countries_array);
Run Code Online (Sandbox Code Playgroud)
当countries_array就像
<resources>
<string-array name="countries_array">
<item>Bahrain</item>
<item>Bangladesh</item>
<item>India</item>
</string-array>
</resources>
Run Code Online (Sandbox Code Playgroud)