我试着在android模拟器上使用我的应用程序,其中包含Android Backup Service和我自己的BackupAgent的用法。但是备份不起作用,尽管使用androidmanifest.xml编写了权限。
权限:
日志中的警告:09-17 09:05:58.553:warn/packagemanager(73):不授予对包my.package的android.permission.backup权限(protectionlevel=3 flags=0x1be46)
日志中出现异常(当我尝试调用requestRestore()时):
java.lang.SecurityException:GetCurrentTransport:用户10040和当前进程都没有android.permission.backup。
我的密码怎么了?
我的清单

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="my.package">

<uses-permission android:name="android.permission.BACKUP"/>

<application android:name="my.package.MyApplicationName" android:backupAgent="my.package.MyBackupAgent">

<meta-data android:name="com.google.android.backup.api_key" android:value="my_backup_api_key">

</application>

</manifest>

最佳答案

Manifest permissions的官方android文档对权限一无所知

<uses-permission android:name="android.permission.BACKUP"/>

所以,你应该把它从你的清单上删除。Android Backup Service不需要其他权限。
但是,指定的权限只能由“系统”应用程序使用,因为它需要PROTECTION_SIGNATUREPROTECTION_SIGNATURE_OR_SYSTEMlevel of permissions
这种权限只有在调用方法BackupManager.dataChanged(String packageName)时才需要,但在实现备份服务时通常不需要这种方法。

07-24 09:49
查看更多