diff --git a/core/java/android/hardware/usb/UsbManager.java b/core/java/android/hardware/usb/UsbManager.java index a23a6cbe71fed..1e3bcd0fc796a 100644 --- a/core/java/android/hardware/usb/UsbManager.java +++ b/core/java/android/hardware/usb/UsbManager.java @@ -23,6 +23,7 @@ import android.app.PendingIntent; import android.content.Context; import android.os.Bundle; import android.os.ParcelFileDescriptor; +import android.os.Process; import android.os.RemoteException; import android.util.Log; @@ -454,6 +455,21 @@ public class UsbManager { } } + /** + * Grants permission for USB device without showing system dialog. + * Only system components can call this function. + * @param device to request permissions for + * + * {@hide} + */ + public void grantPermission(UsbDevice device) { + try { + mService.grantDevicePermission(device, Process.myUid()); + } catch (RemoteException e) { + Log.e(TAG, "RemoteException in grantPermission", e); + } + } + /** * Returns true if the specified USB function is currently enabled when in device mode. *

diff --git a/packages/MtpDocumentsProvider/Android.mk b/packages/MtpDocumentsProvider/Android.mk index ec18463c71631..3c2fa36bde40c 100644 --- a/packages/MtpDocumentsProvider/Android.mk +++ b/packages/MtpDocumentsProvider/Android.mk @@ -5,6 +5,7 @@ LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_PACKAGE_NAME := MtpDocumentsProvider LOCAL_CERTIFICATE := media +LOCAL_PRIVILEGED_MODULE := true include $(BUILD_PACKAGE) include $(LOCAL_PATH)/tests/Android.mk diff --git a/packages/MtpDocumentsProvider/AndroidManifest.xml b/packages/MtpDocumentsProvider/AndroidManifest.xml index 3861d7880ac94..d6042a19377ab 100644 --- a/packages/MtpDocumentsProvider/AndroidManifest.xml +++ b/packages/MtpDocumentsProvider/AndroidManifest.xml @@ -3,6 +3,7 @@ package="com.android.mtp" android:sharedUserId="android.media"> +