Loading api/current.txt +4 −2 Original line number Diff line number Diff line Loading @@ -19546,8 +19546,10 @@ package android.os { public abstract class Vibrator { method public abstract void cancel(); method public abstract boolean hasVibrator(); method public abstract void vibrate(long); method public abstract void vibrate(long[], int); method public void vibrate(long); method public void vibrate(long, int); method public void vibrate(long[], int); method public void vibrate(long[], int, int); } public class WorkSource implements android.os.Parcelable { core/java/android/app/AppOpsManager.java +48 −0 Original line number Diff line number Diff line Loading @@ -780,6 +780,25 @@ public class AppOpsManager { } } /** * Set a non-persisted restriction on an audio operation at a stream-level. * Restrictions are temporary additional constraints imposed on top of the persisted rules * defined by {@link #setMode}. * * @param code The operation to restrict. * @param stream The {@link android.media.AudioManager} stream type. * @param mode The restriction mode (MODE_IGNORED,MODE_ERRORED) or MODE_ALLOWED to unrestrict. * @param exceptionPackages Optional list of packages to exclude from the restriction. * @hide */ public void setRestriction(int code, int stream, int mode, String[] exceptionPackages) { try { final int uid = Binder.getCallingUid(); mService.setAudioRestriction(code, stream, uid, mode, exceptionPackages); } catch (RemoteException e) { } } /** @hide */ public void resetAllModes() { try { Loading Loading @@ -1008,6 +1027,35 @@ public class AppOpsManager { } } /** * Like {@link #checkOp} but at a stream-level for audio operations. * @hide */ public int checkAudioOp(int op, int stream, int uid, String packageName) { try { final int mode = mService.checkAudioOperation(op, stream, uid, packageName); if (mode == MODE_ERRORED) { throw new SecurityException(buildSecurityExceptionMsg(op, uid, packageName)); } return mode; } catch (RemoteException e) { } return MODE_IGNORED; } /** * Like {@link #checkAudioOp} but instead of throwing a {@link SecurityException} it * returns {@link #MODE_ERRORED}. * @hide */ public int checkAudioOpNoThrow(int op, int stream, int uid, String packageName) { try { return mService.checkAudioOperation(op, stream, uid, packageName); } catch (RemoteException e) { } return MODE_IGNORED; } /** * Make note of an application performing an operation. Note that you must pass * in both the uid and name of the application to be checked; this function will verify Loading core/java/android/hardware/input/InputManager.java +10 −18 Original line number Diff line number Diff line Loading @@ -853,13 +853,21 @@ public final class InputManager { return true; } /** * @hide */ @Override public void vibrate(long milliseconds) { public void vibrate(int owningUid, String owningPackage, long milliseconds, int streamHint) { vibrate(new long[] { 0, milliseconds}, -1); } /** * @hide */ @Override public void vibrate(long[] pattern, int repeat) { public void vibrate(int owningUid, String owningPackage, long[] pattern, int repeat, int streamHint) { if (repeat >= pattern.length) { throw new ArrayIndexOutOfBoundsException(); } Loading @@ -870,22 +878,6 @@ public final class InputManager { } } /** * @hide */ @Override public void vibrate(int owningUid, String owningPackage, long milliseconds) { vibrate(milliseconds); } /** * @hide */ @Override public void vibrate(int owningUid, String owningPackage, long[] pattern, int repeat) { vibrate(pattern, repeat); } @Override public void cancel() { try { Loading core/java/android/os/IVibratorService.aidl +2 −2 Original line number Diff line number Diff line Loading @@ -20,8 +20,8 @@ package android.os; interface IVibratorService { boolean hasVibrator(); void vibrate(int uid, String packageName, long milliseconds, IBinder token); void vibratePattern(int uid, String packageName, in long[] pattern, int repeat, IBinder token); void vibrate(int uid, String packageName, long milliseconds, int streamHint, IBinder token); void vibratePattern(int uid, String packageName, in long[] pattern, int repeat, int streamHint, IBinder token); void cancelVibrate(IBinder token); } core/java/android/os/NullVibrator.java +6 −14 Original line number Diff line number Diff line Loading @@ -36,22 +36,11 @@ public class NullVibrator extends Vibrator { return false; } @Override public void vibrate(long milliseconds) { } @Override public void vibrate(long[] pattern, int repeat) { if (repeat >= pattern.length) { throw new ArrayIndexOutOfBoundsException(); } } /** * @hide */ @Override public void vibrate(int owningUid, String owningPackage, long milliseconds) { public void vibrate(int owningUid, String owningPackage, long milliseconds, int streamHint) { vibrate(milliseconds); } Loading @@ -59,8 +48,11 @@ public class NullVibrator extends Vibrator { * @hide */ @Override public void vibrate(int owningUid, String owningPackage, long[] pattern, int repeat) { vibrate(pattern, repeat); public void vibrate(int owningUid, String owningPackage, long[] pattern, int repeat, int streamHint) { if (repeat >= pattern.length) { throw new ArrayIndexOutOfBoundsException(); } } @Override Loading Loading
api/current.txt +4 −2 Original line number Diff line number Diff line Loading @@ -19546,8 +19546,10 @@ package android.os { public abstract class Vibrator { method public abstract void cancel(); method public abstract boolean hasVibrator(); method public abstract void vibrate(long); method public abstract void vibrate(long[], int); method public void vibrate(long); method public void vibrate(long, int); method public void vibrate(long[], int); method public void vibrate(long[], int, int); } public class WorkSource implements android.os.Parcelable {
core/java/android/app/AppOpsManager.java +48 −0 Original line number Diff line number Diff line Loading @@ -780,6 +780,25 @@ public class AppOpsManager { } } /** * Set a non-persisted restriction on an audio operation at a stream-level. * Restrictions are temporary additional constraints imposed on top of the persisted rules * defined by {@link #setMode}. * * @param code The operation to restrict. * @param stream The {@link android.media.AudioManager} stream type. * @param mode The restriction mode (MODE_IGNORED,MODE_ERRORED) or MODE_ALLOWED to unrestrict. * @param exceptionPackages Optional list of packages to exclude from the restriction. * @hide */ public void setRestriction(int code, int stream, int mode, String[] exceptionPackages) { try { final int uid = Binder.getCallingUid(); mService.setAudioRestriction(code, stream, uid, mode, exceptionPackages); } catch (RemoteException e) { } } /** @hide */ public void resetAllModes() { try { Loading Loading @@ -1008,6 +1027,35 @@ public class AppOpsManager { } } /** * Like {@link #checkOp} but at a stream-level for audio operations. * @hide */ public int checkAudioOp(int op, int stream, int uid, String packageName) { try { final int mode = mService.checkAudioOperation(op, stream, uid, packageName); if (mode == MODE_ERRORED) { throw new SecurityException(buildSecurityExceptionMsg(op, uid, packageName)); } return mode; } catch (RemoteException e) { } return MODE_IGNORED; } /** * Like {@link #checkAudioOp} but instead of throwing a {@link SecurityException} it * returns {@link #MODE_ERRORED}. * @hide */ public int checkAudioOpNoThrow(int op, int stream, int uid, String packageName) { try { return mService.checkAudioOperation(op, stream, uid, packageName); } catch (RemoteException e) { } return MODE_IGNORED; } /** * Make note of an application performing an operation. Note that you must pass * in both the uid and name of the application to be checked; this function will verify Loading
core/java/android/hardware/input/InputManager.java +10 −18 Original line number Diff line number Diff line Loading @@ -853,13 +853,21 @@ public final class InputManager { return true; } /** * @hide */ @Override public void vibrate(long milliseconds) { public void vibrate(int owningUid, String owningPackage, long milliseconds, int streamHint) { vibrate(new long[] { 0, milliseconds}, -1); } /** * @hide */ @Override public void vibrate(long[] pattern, int repeat) { public void vibrate(int owningUid, String owningPackage, long[] pattern, int repeat, int streamHint) { if (repeat >= pattern.length) { throw new ArrayIndexOutOfBoundsException(); } Loading @@ -870,22 +878,6 @@ public final class InputManager { } } /** * @hide */ @Override public void vibrate(int owningUid, String owningPackage, long milliseconds) { vibrate(milliseconds); } /** * @hide */ @Override public void vibrate(int owningUid, String owningPackage, long[] pattern, int repeat) { vibrate(pattern, repeat); } @Override public void cancel() { try { Loading
core/java/android/os/IVibratorService.aidl +2 −2 Original line number Diff line number Diff line Loading @@ -20,8 +20,8 @@ package android.os; interface IVibratorService { boolean hasVibrator(); void vibrate(int uid, String packageName, long milliseconds, IBinder token); void vibratePattern(int uid, String packageName, in long[] pattern, int repeat, IBinder token); void vibrate(int uid, String packageName, long milliseconds, int streamHint, IBinder token); void vibratePattern(int uid, String packageName, in long[] pattern, int repeat, int streamHint, IBinder token); void cancelVibrate(IBinder token); }
core/java/android/os/NullVibrator.java +6 −14 Original line number Diff line number Diff line Loading @@ -36,22 +36,11 @@ public class NullVibrator extends Vibrator { return false; } @Override public void vibrate(long milliseconds) { } @Override public void vibrate(long[] pattern, int repeat) { if (repeat >= pattern.length) { throw new ArrayIndexOutOfBoundsException(); } } /** * @hide */ @Override public void vibrate(int owningUid, String owningPackage, long milliseconds) { public void vibrate(int owningUid, String owningPackage, long milliseconds, int streamHint) { vibrate(milliseconds); } Loading @@ -59,8 +48,11 @@ public class NullVibrator extends Vibrator { * @hide */ @Override public void vibrate(int owningUid, String owningPackage, long[] pattern, int repeat) { vibrate(pattern, repeat); public void vibrate(int owningUid, String owningPackage, long[] pattern, int repeat, int streamHint) { if (repeat >= pattern.length) { throw new ArrayIndexOutOfBoundsException(); } } @Override Loading