Loading api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -388,6 +388,7 @@ package android.app.backup { method public void selectBackupTransport(android.content.ComponentName, android.app.backup.SelectBackupTransportCallback); method public void setAutoRestore(boolean); method public void setBackupEnabled(boolean); method public void updateTransportAttributes(android.content.ComponentName, java.lang.String, android.content.Intent, java.lang.String, android.content.Intent, java.lang.String); field public static final int ERROR_AGENT_FAILURE = -1003; // 0xfffffc15 field public static final int ERROR_BACKUP_CANCELLED = -2003; // 0xfffff82d field public static final int ERROR_BACKUP_NOT_ALLOWED = -2001; // 0xfffff82f Loading core/java/android/app/backup/BackupManager.java +53 −0 Original line number Diff line number Diff line Loading @@ -16,10 +16,12 @@ package android.app.backup; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; Loading Loading @@ -445,6 +447,57 @@ public class BackupManager { return null; } /** * Update the attributes of the transport identified by {@code transportComponent}. If the * specified transport has not been bound at least once (for registration), this call will be * ignored. Only the host process of the transport can change its description, otherwise a * {@link SecurityException} will be thrown. * * @param transportComponent The identity of the transport being described. * @param name A {@link String} with the new name for the transport. This is NOT for * identification. MUST NOT be {@code null}. * @param configurationIntent An {@link Intent} that can be passed to * {@link Context#startActivity} in order to launch the transport's configuration UI. It may * be {@code null} if the transport does not offer any user-facing configuration UI. * @param currentDestinationString A {@link String} describing the destination to which the * transport is currently sending data. MUST NOT be {@code null}. * @param dataManagementIntent An {@link Intent} that can be passed to * {@link Context#startActivity} in order to launch the transport's data-management UI. It * may be {@code null} if the transport does not offer any user-facing data * management UI. * @param dataManagementLabel A {@link String} to be used as the label for the transport's data * management affordance. This MUST be {@code null} when dataManagementIntent is * {@code null} and MUST NOT be {@code null} when dataManagementIntent is not {@code null}. * @throws SecurityException If the UID of the calling process differs from the package UID of * {@code transportComponent} or if the caller does NOT have BACKUP permission. * * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.BACKUP) public void updateTransportAttributes( ComponentName transportComponent, String name, @Nullable Intent configurationIntent, String currentDestinationString, @Nullable Intent dataManagementIntent, @Nullable String dataManagementLabel) { checkServiceBinder(); if (sService != null) { try { sService.updateTransportAttributes( transportComponent, name, configurationIntent, currentDestinationString, dataManagementIntent, dataManagementLabel); } catch (RemoteException e) { Log.e(TAG, "describeTransport() couldn't connect"); } } } /** * Specify the current backup transport. * Loading core/java/android/app/backup/IBackupManager.aidl +30 −0 Original line number Diff line number Diff line Loading @@ -221,6 +221,36 @@ interface IBackupManager { in String curPassword, in String encryptionPassword, IFullBackupRestoreObserver observer); /** * Update the attributes of the transport identified by {@code transportComponent}. If the * specified transport has not been bound at least once (for registration), this call will be * ignored. Only the host process of the transport can change its description, otherwise a * {@link SecurityException} will be thrown. * * @param transportComponent The identity of the transport being described. * @param name A {@link String} with the new name for the transport. This is NOT for * identification. MUST NOT be {@code null}. * @param configurationIntent An {@link Intent} that can be passed to * {@link Context#startActivity} in order to launch the transport's configuration UI. It may * be {@code null} if the transport does not offer any user-facing configuration UI. * @param currentDestinationString A {@link String} describing the destination to which the * transport is currently sending data. MUST NOT be {@code null}. * @param dataManagementIntent An {@link Intent} that can be passed to * {@link Context#startActivity} in order to launch the transport's data-management UI. It * may be {@code null} if the transport does not offer any user-facing data * management UI. * @param dataManagementLabel A {@link String} to be used as the label for the transport's data * management affordance. This MUST be {@code null} when dataManagementIntent is * {@code null} and MUST NOT be {@code null} when dataManagementIntent is not {@code null}. * @throws SecurityException If the UID of the calling process differs from the package UID of * {@code transportComponent} or if the caller does NOT have BACKUP permission. * * @hide */ void updateTransportAttributes(in ComponentName transportComponent, in String name, in Intent configurationIntent, in String currentDestinationString, in Intent dataManagementIntent, in String dataManagementLabel); /** * Identify the currently selected transport. Callers must hold the * android.permission.BACKUP permission to use this method. Loading core/java/com/android/internal/backup/IBackupTransport.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ interface IBackupTransport { * "live" backup services without interfering with the live bookkeeping. The * returned string should be a name that is expected to be unambiguous among all * available backup transports; the name of the class implementing the transport * is a good choice. * is a good choice. This MUST be constant. * * @return A unique name, suitable for use as a file or directory name, that the * Backup Manager could use to disambiguate state files associated with Loading services/backup/java/com/android/server/backup/BackupManagerService.java +13 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,6 @@ import android.app.backup.IRestoreSession; import android.app.backup.ISelectBackupTransportCallback; import android.app.backup.RestoreDescription; import android.app.backup.RestoreSet; import android.app.backup.SelectBackupTransportCallback; import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; import android.content.ComponentName; Loading Loading @@ -10465,6 +10464,19 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF return mEnabled; // no need to synchronize just to read it } @Override public void updateTransportAttributes( ComponentName transportComponent, String name, Intent configurationIntent, String currentDestinationString, Intent dataManagementIntent, String dataManagementLabel) { mContext.enforceCallingOrSelfPermission( android.Manifest.permission.BACKUP, "updateTransportAttributes"); Slog.e(TAG, "Unsupported operation"); } // Report the name of the currently active transport @Override public String getCurrentTransport() { Loading Loading
api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -388,6 +388,7 @@ package android.app.backup { method public void selectBackupTransport(android.content.ComponentName, android.app.backup.SelectBackupTransportCallback); method public void setAutoRestore(boolean); method public void setBackupEnabled(boolean); method public void updateTransportAttributes(android.content.ComponentName, java.lang.String, android.content.Intent, java.lang.String, android.content.Intent, java.lang.String); field public static final int ERROR_AGENT_FAILURE = -1003; // 0xfffffc15 field public static final int ERROR_BACKUP_CANCELLED = -2003; // 0xfffff82d field public static final int ERROR_BACKUP_NOT_ALLOWED = -2001; // 0xfffff82f Loading
core/java/android/app/backup/BackupManager.java +53 −0 Original line number Diff line number Diff line Loading @@ -16,10 +16,12 @@ package android.app.backup; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; Loading Loading @@ -445,6 +447,57 @@ public class BackupManager { return null; } /** * Update the attributes of the transport identified by {@code transportComponent}. If the * specified transport has not been bound at least once (for registration), this call will be * ignored. Only the host process of the transport can change its description, otherwise a * {@link SecurityException} will be thrown. * * @param transportComponent The identity of the transport being described. * @param name A {@link String} with the new name for the transport. This is NOT for * identification. MUST NOT be {@code null}. * @param configurationIntent An {@link Intent} that can be passed to * {@link Context#startActivity} in order to launch the transport's configuration UI. It may * be {@code null} if the transport does not offer any user-facing configuration UI. * @param currentDestinationString A {@link String} describing the destination to which the * transport is currently sending data. MUST NOT be {@code null}. * @param dataManagementIntent An {@link Intent} that can be passed to * {@link Context#startActivity} in order to launch the transport's data-management UI. It * may be {@code null} if the transport does not offer any user-facing data * management UI. * @param dataManagementLabel A {@link String} to be used as the label for the transport's data * management affordance. This MUST be {@code null} when dataManagementIntent is * {@code null} and MUST NOT be {@code null} when dataManagementIntent is not {@code null}. * @throws SecurityException If the UID of the calling process differs from the package UID of * {@code transportComponent} or if the caller does NOT have BACKUP permission. * * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.BACKUP) public void updateTransportAttributes( ComponentName transportComponent, String name, @Nullable Intent configurationIntent, String currentDestinationString, @Nullable Intent dataManagementIntent, @Nullable String dataManagementLabel) { checkServiceBinder(); if (sService != null) { try { sService.updateTransportAttributes( transportComponent, name, configurationIntent, currentDestinationString, dataManagementIntent, dataManagementLabel); } catch (RemoteException e) { Log.e(TAG, "describeTransport() couldn't connect"); } } } /** * Specify the current backup transport. * Loading
core/java/android/app/backup/IBackupManager.aidl +30 −0 Original line number Diff line number Diff line Loading @@ -221,6 +221,36 @@ interface IBackupManager { in String curPassword, in String encryptionPassword, IFullBackupRestoreObserver observer); /** * Update the attributes of the transport identified by {@code transportComponent}. If the * specified transport has not been bound at least once (for registration), this call will be * ignored. Only the host process of the transport can change its description, otherwise a * {@link SecurityException} will be thrown. * * @param transportComponent The identity of the transport being described. * @param name A {@link String} with the new name for the transport. This is NOT for * identification. MUST NOT be {@code null}. * @param configurationIntent An {@link Intent} that can be passed to * {@link Context#startActivity} in order to launch the transport's configuration UI. It may * be {@code null} if the transport does not offer any user-facing configuration UI. * @param currentDestinationString A {@link String} describing the destination to which the * transport is currently sending data. MUST NOT be {@code null}. * @param dataManagementIntent An {@link Intent} that can be passed to * {@link Context#startActivity} in order to launch the transport's data-management UI. It * may be {@code null} if the transport does not offer any user-facing data * management UI. * @param dataManagementLabel A {@link String} to be used as the label for the transport's data * management affordance. This MUST be {@code null} when dataManagementIntent is * {@code null} and MUST NOT be {@code null} when dataManagementIntent is not {@code null}. * @throws SecurityException If the UID of the calling process differs from the package UID of * {@code transportComponent} or if the caller does NOT have BACKUP permission. * * @hide */ void updateTransportAttributes(in ComponentName transportComponent, in String name, in Intent configurationIntent, in String currentDestinationString, in Intent dataManagementIntent, in String dataManagementLabel); /** * Identify the currently selected transport. Callers must hold the * android.permission.BACKUP permission to use this method. Loading
core/java/com/android/internal/backup/IBackupTransport.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ interface IBackupTransport { * "live" backup services without interfering with the live bookkeeping. The * returned string should be a name that is expected to be unambiguous among all * available backup transports; the name of the class implementing the transport * is a good choice. * is a good choice. This MUST be constant. * * @return A unique name, suitable for use as a file or directory name, that the * Backup Manager could use to disambiguate state files associated with Loading
services/backup/java/com/android/server/backup/BackupManagerService.java +13 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,6 @@ import android.app.backup.IRestoreSession; import android.app.backup.ISelectBackupTransportCallback; import android.app.backup.RestoreDescription; import android.app.backup.RestoreSet; import android.app.backup.SelectBackupTransportCallback; import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; import android.content.ComponentName; Loading Loading @@ -10465,6 +10464,19 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF return mEnabled; // no need to synchronize just to read it } @Override public void updateTransportAttributes( ComponentName transportComponent, String name, Intent configurationIntent, String currentDestinationString, Intent dataManagementIntent, String dataManagementLabel) { mContext.enforceCallingOrSelfPermission( android.Manifest.permission.BACKUP, "updateTransportAttributes"); Slog.e(TAG, "Unsupported operation"); } // Report the name of the currently active transport @Override public String getCurrentTransport() { Loading