android - 使用 Android Service Backup (Cloud Backup) 时出现 Unclear SecurityException

标签 android permissions android-backup-service

我尝试使用我的应用程序,其中包含 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_SIGNATUREPROTECTION_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/

相关文章:

linux - umask 对文本文件的影响

sql-server - SQL Server : can you limit access to only one table

android - 如何从android中项目的根目录添加另一个gradle文件

android - 如何向服务请求权限

java - 在字符之间剪切字符串并且不删除这些字符

android - 向后兼容的 BackupAgent

whatsapp - 将数据存储到谷歌驱动器的备份选项卡而不是驱动器文件夹中

安卓服务无法启动

android - 语音识别应用程序未返回 Android 中的确切单词

android - 微调器不显示所选项目或默认值