diff options
Diffstat (limited to 'core/java')
5 files changed, 75 insertions, 4 deletions
diff --git a/core/java/android/backup/BackupManager.java b/core/java/android/backup/BackupManager.java index 6f0b2ee..30f781e 100644 --- a/core/java/android/backup/BackupManager.java +++ b/core/java/android/backup/BackupManager.java @@ -42,6 +42,12 @@ public class BackupManager { private IBackupManager mService; /** + * Defined backup transports understood by {@link IBackupManager.selectBackupTransport}. + */ + public static final int TRANSPORT_ADB = 1; + public static final int TRANSPORT_GOOGLE = 2; + + /** * Constructs a BackupManager object through which the application can * communicate with the Android backup system. * diff --git a/core/java/android/backup/IBackupManager.aidl b/core/java/android/backup/IBackupManager.aidl index 3468d70..f5b82fe 100644 --- a/core/java/android/backup/IBackupManager.aidl +++ b/core/java/android/backup/IBackupManager.aidl @@ -36,20 +36,28 @@ interface IBackupManager { /** * Notifies the Backup Manager Service that an agent has become available. This * method is only invoked by the Activity Manager. - * !!! TODO: permission */ oneway void agentConnected(String packageName, IBinder agent); /** * Notify the Backup Manager Service that an agent has unexpectedly gone away. * This method is only invoked by the Activity Manager. - * !!! TODO: permission */ oneway void agentDisconnected(String packageName); /** - * Schedule a full backup of the given package. - * !!! TODO: permission + * Schedule a full backup of the given package. Callers must hold the + * android.permission.BACKUP permission to use this method. */ oneway void scheduleFullBackup(String packageName); + + /** + * Specify a default backup transport. Callers must hold the + * android.permission.BACKUP permission to use this method. + * + * @param transportID The ID of the transport to select. This should be one + * of {@link BackupManager.TRANSPORT_GOOGLE} or {@link BackupManager.TRANSPORT_ADB}. + * @return The ID of the previously selected transport. + */ + int selectBackupTransport(int transportID); } diff --git a/core/java/com/android/internal/backup/AdbTransport.java b/core/java/com/android/internal/backup/AdbTransport.java new file mode 100644 index 0000000..acb3273 --- /dev/null +++ b/core/java/com/android/internal/backup/AdbTransport.java @@ -0,0 +1,28 @@ +package com.android.internal.backup; + +import android.os.ParcelFileDescriptor; +import android.os.RemoteException; + +/** + * Backup transport for full backup over adb. This transport pipes everything to + * a file in a known location in /cache, which 'adb backup' then pulls to the desktop + * (deleting it afterwards). + */ + +public class AdbTransport extends IBackupTransport.Stub { + + public int startSession() throws RemoteException { + return 0; + } + + public int endSession() throws RemoteException { + // TODO Auto-generated method stub + return 0; + } + + public int performBackup(String packageName, ParcelFileDescriptor data) + throws RemoteException { + // TODO Auto-generated method stub + return 0; + } +} diff --git a/core/java/com/android/internal/backup/GoogleTransport.java b/core/java/com/android/internal/backup/GoogleTransport.java new file mode 100644 index 0000000..85ab21e --- /dev/null +++ b/core/java/com/android/internal/backup/GoogleTransport.java @@ -0,0 +1,28 @@ +package com.android.internal.backup; + +import android.os.ParcelFileDescriptor; +import android.os.RemoteException; + +/** + * Backup transport for saving data to Google cloud storage. + */ + +public class GoogleTransport extends IBackupTransport.Stub { + + public int endSession() throws RemoteException { + // TODO Auto-generated method stub + return 0; + } + + public int performBackup(String packageName, ParcelFileDescriptor data) + throws RemoteException { + // TODO Auto-generated method stub + return 0; + } + + public int startSession() throws RemoteException { + // TODO Auto-generated method stub + return 0; + } + +} diff --git a/core/java/com/android/internal/backup/IBackupTransport.aidl b/core/java/com/android/internal/backup/IBackupTransport.aidl index ce39768..2b44fe7 100644 --- a/core/java/com/android/internal/backup/IBackupTransport.aidl +++ b/core/java/com/android/internal/backup/IBackupTransport.aidl @@ -16,6 +16,7 @@ package com.android.internal.backup; +import android.os.Bundle; import android.os.ParcelFileDescriptor; /** {@hide} */ |