4

Android Emulatorで、AndroidBackupServiceを自分で使用したアプリケーションを使用しようとしています。ただし、AndroidManifest.xmlに許可が記述されているにもかかわらず、バックアップは機能しません。BackupAgent

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

ログの警告: 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がありません。

私のコードの何が問題になっていますか?

UPD:私のマニフェスト

<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>
4

2 に答える 2

5

マニフェストの権限に関する公式のAndroidドキュメントは、権限について何も知りません

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

したがって、マニフェストから削除する必要があります。Androidバックアップサービス には追加の権限は必要ありません。

PROTECTION_SIGNATUREただし、指定されたアクセス許可は使用できますが、アクセス許可またはPROTECTION_SIGNATURE_OR_SYSTEM レベルのアクセス許可が必要なため、「システム」アプリケーションでのみ使用できます。

このような権限は、メソッドBackupManager.dataChanged(String packageName)を呼び出す場合にのみ必要ですが、通常、バックアップサービスを実装する場合はこのメソッドは必要ありません。

于 2012-09-17T10:27:58.343 に答える
1

通常の操作android.permission.BACKUPには許可は必要ありません。BackupAgentマニフェストから削除します。ただし、動作を停止することはありませんBackupAgent

BackupManager.dataChanged()バックアップを実行する必要がある場合は、必ずメソッドを呼び出してください。そうしないと、BackupAgentが1回呼び出されますが、再度呼び出されることはありません。どちらも必要ありませんandroid.permission.BACKUP

于 2012-10-16T20:36:35.793 に答える