Xamarin Android更改清单以在运行时允许allowBackup = true

问题描述 投票:0回答:2

在我的Xamarin Android应用中,我在清单中设置了以下内容:

<application android:allowBackup="false" />

我必须这样做,因为每次安装该应用程序时,它都会在存储某些信息时跟踪sqlite数据库的先前图像。一种在将该行添加到清单中之后,每次我重新安装该应用程序时,我都会使用一个干净的数据库,因此以前的信息都不会被使用。

但是这会带来另一个问题。我的应用程序上有一个按钮,可以简单地将本地数据库的副本创建到外部存储。如果我未在清单中设置allowBackup =“ false”,则此副本可以正常工作,但是由于我不得不(针对前面提到的问题),我发现自己位于无法同时进行这两项工作(即,每次安装后都清洁DB,并且有可能将DB的副本创建到外部驱动器)。

我认为可能的解决方法可能是在清单中保留allowBackup =“ false”,但在创建数据库副本之前将其更改为“ true”。然后,我可以将标志更改回“ false”。

但是我怎么能做到这一点?我还没有在网上找到任何东西。谢谢。

xamarin xamarin.forms xamarin.android
2个回答
0
投票
清单的目的是无法更改。例如,在此处声明您的应用将有权访问的内容(直到Android Marshmallow,这是进行此类声明的唯一方法)。显然,这种情况在运行时无法更改。

同样,备份的目的是在所有情况下(包括您不喜欢的情况)进行还原(由于种种原因,由于我看不到您的应用为何无法继续使用其拥有的数据的原因,这仍然不清楚在卸载该应用程序之前可以正常工作),因此基本上您不希望备份,而应将其设置为false。


0
投票
程序中可能还有其他子模块也使用android: allowBackup属性。您可以通过将tools:replace="android:allowBackup"添加到application来尝试以下方法。

<application android:allowBackup="false" tools:replace="android:allowBackup" ... </application>

添加工具参考:xmlns:tools="http://schemas.android.com/tools"中的<manifest ...>
© www.soinside.com 2019 - 2024. All rights reserved.