我尝试使用我的应用程序,其中包含 Android Backup Service 的用法在 Android Emulator 上使用我自己的 BackupAgent
。但是备份不起作用,尽管在 AndroidManifest.xml 中写入了许可。
权限:
日志中的警告: 09-17 09:05:58.553:WARN/PackageManager(73):未授予 android.permission.BACKUP 打包 my.package 的权限(protectionLevel=3 flags=0x1be46 )
日志异常(当我尝试调用 requestRestore() 时): java.lang.SecurityException: getCurrentTransport: 用户 10040 和当前进程都没有 android.permission.BACKUP。
我的代码有什么问题?
UPD:我的 list
<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"/>
因此,您应该将其从您的 list 中删除。 Android Backup Service 不需要额外的权限。
但是,可以使用指定的权限,但只能由“系统”应用程序使用,因为它需要 PROTECTION_SIGNATURE
或 PROTECTION_SIGNATURE_OR_SYSTEM
level of permissions .
只有在调用方法时才需要这样的权限BackupManager.dataChanged(String packageName) , 但通常在实现备份服务时不需要此方法。
关于android - 使用 Android Service Backup (Cloud Backup) 时出现 Unclear SecurityException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12456310/