diff options
author | Mike Lockwood <lockwood@android.com> | 2011-03-11 05:56:50 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-03-11 05:56:50 -0800 |
commit | 364903bac6b9bfde694f1c0c5c40b6a2af628408 (patch) | |
tree | 37eecb4315cd240a5f0eb4bb48eb74583156b369 /services | |
parent | 352987e0889b6fa8862f489bc31ba7e9de8d1cbe (diff) | |
parent | 024b4f14945bd2a285f730faa3a0fdbb6c47abc1 (diff) | |
download | frameworks_base-364903bac6b9bfde694f1c0c5c40b6a2af628408.zip frameworks_base-364903bac6b9bfde694f1c0c5c40b6a2af628408.tar.gz frameworks_base-364903bac6b9bfde694f1c0c5c40b6a2af628408.tar.bz2 |
Merge "Support for USB accessory URIs" into honeycomb-mr1
Diffstat (limited to 'services')
-rw-r--r-- | services/java/com/android/server/usb/UsbDeviceSettingsManager.java | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/services/java/com/android/server/usb/UsbDeviceSettingsManager.java b/services/java/com/android/server/usb/UsbDeviceSettingsManager.java index 9398979..7fde67a 100644 --- a/services/java/com/android/server/usb/UsbDeviceSettingsManager.java +++ b/services/java/com/android/server/usb/UsbDeviceSettingsManager.java @@ -568,8 +568,31 @@ class UsbDeviceSettingsManager { private void resolveActivity(Intent intent, ArrayList<ResolveInfo> matches, String defaultPackage, UsbDevice device, UsbAccessory accessory) { int count = matches.size(); + // don't show the resolver activity if there are no choices available - if (count == 0) return; + if (count == 0) { + if (accessory != null) { + String uri = accessory.getUri(); + if (uri != null && uri.length() > 0) { + // display URI to user + // start UsbResolverActivity so user can choose an activity + Intent dialogIntent = new Intent(); + dialogIntent.setClassName("com.android.systemui", + "com.android.systemui.usb.UsbAccessoryUriActivity"); + dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + dialogIntent.putExtra(UsbManager.EXTRA_ACCESSORY, accessory); + dialogIntent.putExtra("uri", uri); + try { + mContext.startActivity(dialogIntent); + } catch (ActivityNotFoundException e) { + Log.e(TAG, "unable to start UsbAccessoryUriActivity"); + } + } + } + + // do nothing + return; + } ResolveInfo defaultRI = null; if (count == 1 && defaultPackage == null) { @@ -613,8 +636,6 @@ class UsbDeviceSettingsManager { Log.e(TAG, "startActivity failed", e); } } else { - long identity = Binder.clearCallingIdentity(); - // start UsbResolverActivity so user can choose an activity Intent resolverIntent = new Intent(); resolverIntent.setClassName("com.android.systemui", @@ -626,8 +647,6 @@ class UsbDeviceSettingsManager { mContext.startActivity(resolverIntent); } catch (ActivityNotFoundException e) { Log.e(TAG, "unable to start UsbResolverActivity"); - } finally { - Binder.restoreCallingIdentity(identity); } } } |