2012-09-17 72 views
4

我嘗試使用我的應用程序,其中包含Android Backup Service與我自己BackupAgent的使用情況,Android模擬器。但備份不起作用,儘管在AndroidManifest.xml中寫入權限。使用Android服務備份(雲備份)時出現Unclear SecurityException

許可: <使用的許可機器人:名稱= 「android.permission.BACKUP」/ >

警告日誌: 9月9日至十七日:05:58.553:WARN/PackageManager(73) :未授予權限android.permission.BACKUP打包my.package(的ProtectionLevel = 3個=標誌0x1be46)

異常日誌(當我嘗試調用requestRestore()): java.lang.SecurityException異常:getCurrentTransport:都不是使用r 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> 
+0

嘗試要求整個應用程序的權限,您是否確定在更改清單後生成項目? – Ruuhkis

+0

我確信我已經構建它,並且我的許可是針對整個應用程序的。 –

+0

可以請你發佈整個androidManifest文件嗎? –

回答

5

Manifest permissions官方Android文檔一無所知許可

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

所以,你應該從你的清單中刪除。 Android Backup Service不需要需要額外的權限。

但是,可以使用指定的權限,但只能使用「系統」應用程序,因爲它需要PROTECTION_SIGNATUREPROTECTION_SIGNATURE_OR_SYSTEMlevel of permissions

只有在調用方法BackupManager.dataChanged(String packageName)時才需要此權限,但通常在實施備份服務時不需要此方法。

+0

調用BackupManager.dataChanged非常重要。它不需要android.permission.BACKUP。 –

0

正常BackupAgent操作不需要android.permission.BACKUP權限。從清單中刪除它 - 儘管它不應該阻止您的BackupAgent工作。

確保在需要備份時調用BackupManager.dataChanged()方法,否則您的BackupAgent將被調用一次,但不會再次。它也不需要android.permission.BACKUP