Loading core/java/android/app/backup/IBackupManager.aidl +22 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.app.backup; import android.app.backup.IRestoreSession; import android.content.Intent; /** * Direct interface to the Backup Manager Service that applications invoke on. The only Loading Loading @@ -143,6 +144,27 @@ interface IBackupManager { */ String selectBackupTransport(String transport); /** * Get the configuration Intent, if any, from the given transport. Callers must * hold the android.permission.BACKUP permission in order to use this method. * * @param transport The name of the transport to query. * @return An Intent to use with Activity#startActivity() to bring up the configuration * UI supplied by the transport. If the transport has no configuration UI, it should * return {@code null} here. */ Intent getConfigurationIntent(String transport); /** * Get the destination string supplied by the given transport. Callers must * hold the android.permission.BACKUP permission in order to use this method. * * @param transport The name of the transport to query. * @return A string describing the current backup destination. This string is used * verbatim by the Settings UI as the summary text of the "configure..." item. */ String getDestinationString(String transport); /** * Begin a restore session. Either or both of packageName and transportID * may be null. If packageName is non-null, then only the given package will be Loading services/java/com/android/server/BackupManagerService.java +49 −0 Original line number Diff line number Diff line Loading @@ -2344,6 +2344,55 @@ class BackupManagerService extends IBackupManager.Stub { } } // Supply the configuration Intent for the given transport. If the name is not one // of the available transports, or if the transport does not supply any configuration // UI, the method returns null. public Intent getConfigurationIntent(String transportName) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP, "getConfigurationIntent"); synchronized (mTransports) { final IBackupTransport transport = mTransports.get(transportName); if (transport != null) { try { final Intent intent = transport.configurationIntent(); if (DEBUG) Slog.d(TAG, "getConfigurationIntent() returning config intent " + intent); return intent; } catch (RemoteException e) { /* fall through to return null */ } } } return null; } // Supply the configuration summary string for the given transport. If the name is // not one of the available transports, or if the transport does not supply any // summary / destination string, the method can return null. // // This string is used VERBATIM as the summary text of the relevant Settings item! public String getDestinationString(String transportName) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP, "getConfigurationIntent"); synchronized (mTransports) { final IBackupTransport transport = mTransports.get(transportName); if (transport != null) { try { final String text = transport.currentDestinationString(); if (DEBUG) Slog.d(TAG, "getDestinationString() returning " + text); return text; } catch (RemoteException e) { /* fall through to return null */ } } } return null; } // Callback: a requested backup agent has been instantiated. This should only // be called from the Activity Manager. public void agentConnected(String packageName, IBinder agentBinder) { Loading Loading
core/java/android/app/backup/IBackupManager.aidl +22 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.app.backup; import android.app.backup.IRestoreSession; import android.content.Intent; /** * Direct interface to the Backup Manager Service that applications invoke on. The only Loading Loading @@ -143,6 +144,27 @@ interface IBackupManager { */ String selectBackupTransport(String transport); /** * Get the configuration Intent, if any, from the given transport. Callers must * hold the android.permission.BACKUP permission in order to use this method. * * @param transport The name of the transport to query. * @return An Intent to use with Activity#startActivity() to bring up the configuration * UI supplied by the transport. If the transport has no configuration UI, it should * return {@code null} here. */ Intent getConfigurationIntent(String transport); /** * Get the destination string supplied by the given transport. Callers must * hold the android.permission.BACKUP permission in order to use this method. * * @param transport The name of the transport to query. * @return A string describing the current backup destination. This string is used * verbatim by the Settings UI as the summary text of the "configure..." item. */ String getDestinationString(String transport); /** * Begin a restore session. Either or both of packageName and transportID * may be null. If packageName is non-null, then only the given package will be Loading
services/java/com/android/server/BackupManagerService.java +49 −0 Original line number Diff line number Diff line Loading @@ -2344,6 +2344,55 @@ class BackupManagerService extends IBackupManager.Stub { } } // Supply the configuration Intent for the given transport. If the name is not one // of the available transports, or if the transport does not supply any configuration // UI, the method returns null. public Intent getConfigurationIntent(String transportName) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP, "getConfigurationIntent"); synchronized (mTransports) { final IBackupTransport transport = mTransports.get(transportName); if (transport != null) { try { final Intent intent = transport.configurationIntent(); if (DEBUG) Slog.d(TAG, "getConfigurationIntent() returning config intent " + intent); return intent; } catch (RemoteException e) { /* fall through to return null */ } } } return null; } // Supply the configuration summary string for the given transport. If the name is // not one of the available transports, or if the transport does not supply any // summary / destination string, the method can return null. // // This string is used VERBATIM as the summary text of the relevant Settings item! public String getDestinationString(String transportName) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP, "getConfigurationIntent"); synchronized (mTransports) { final IBackupTransport transport = mTransports.get(transportName); if (transport != null) { try { final String text = transport.currentDestinationString(); if (DEBUG) Slog.d(TAG, "getDestinationString() returning " + text); return text; } catch (RemoteException e) { /* fall through to return null */ } } } return null; } // Callback: a requested backup agent has been instantiated. This should only // be called from the Activity Manager. public void agentConnected(String packageName, IBinder agentBinder) { Loading