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">