diff options
author | Joey Grover <joeygrover@gmail.com> | 2016-11-07 09:17:48 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-07 09:17:48 -0500 |
commit | f0b5a5913dc15ada87888c24f942199f7b306861 (patch) | |
tree | acc5e9fd69d2fc68fe441f10c7de36359ced72ef | |
parent | 43bcb357f37b248f9aa2c976e2de35eb1e74963a (diff) | |
parent | c521e40d952c661ace80425a6ed168351b70c374 (diff) | |
download | sdl_android-f0b5a5913dc15ada87888c24f942199f7b306861.tar.gz |
Merge pull request #337 from smartdevicelink/feature/aoa_improvements
AOA improvements
3 files changed, 27 insertions, 15 deletions
diff --git a/sdl_android_lib/AndroidManifest.xml b/sdl_android_lib/AndroidManifest.xml index 190e6d678..2cbeacf64 100644 --- a/sdl_android_lib/AndroidManifest.xml +++ b/sdl_android_lib/AndroidManifest.xml @@ -1,6 +1,4 @@ <manifest package="com.smartdevicelink" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="8"/>
- <!-- Required to use the USB Accessory mode -->
- <uses-feature android:name="android.hardware.usb.accessory"/>
<application android:debuggable="true"/>
</manifest>
diff --git a/sdl_android_lib/src/com/smartdevicelink/transport/SdlBroadcastReceiver.java b/sdl_android_lib/src/com/smartdevicelink/transport/SdlBroadcastReceiver.java index a304191ff..cccd4da7a 100644 --- a/sdl_android_lib/src/com/smartdevicelink/transport/SdlBroadcastReceiver.java +++ b/sdl_android_lib/src/com/smartdevicelink/transport/SdlBroadcastReceiver.java @@ -56,12 +56,20 @@ public abstract class SdlBroadcastReceiver extends BroadcastReceiver{ if(!(action.equalsIgnoreCase(BOOT_COMPLETE) || action.equalsIgnoreCase(ACL_CONNECTED) || action.equalsIgnoreCase(STATE_CHANGED) + || action.equalsIgnoreCase(USBTransport.ACTION_USB_ACCESSORY_ATTACHED) || action.equalsIgnoreCase(TransportConstants.START_ROUTER_SERVICE_ACTION))){ //We don't want anything else here if the child class called super and has different intent filters //Log.i(TAG, "Unwanted intent from child class"); return; } + if(action.equalsIgnoreCase(USBTransport.ACTION_USB_ACCESSORY_ATTACHED)){ + Log.d(TAG, "Usb connected"); + intent.setAction(null); + onSdlEnabled(context, intent); + return; + } + boolean didStart = false; localRouterClass = defineLocalSdlRouterClass(); @@ -99,7 +107,7 @@ public abstract class SdlBroadcastReceiver extends BroadcastReceiver{ } } - + if (intent.getAction().contains("android.bluetooth.adapter.action.STATE_CHANGED")){ int state = intent.getExtras().getInt("android.bluetooth.adapter.extra.STATE"); diff --git a/sdl_android_lib/src/com/smartdevicelink/transport/USBTransport.java b/sdl_android_lib/src/com/smartdevicelink/transport/USBTransport.java index 72616084a..2f2091e5b 100644 --- a/sdl_android_lib/src/com/smartdevicelink/transport/USBTransport.java +++ b/sdl_android_lib/src/com/smartdevicelink/transport/USBTransport.java @@ -446,19 +446,25 @@ public class USBTransport extends SdlTransport { */
private void initializeAccessory() {
logI("Looking for connected accessories");
- UsbManager usbManager = getUsbManager();
- UsbAccessory[] accessories = usbManager.getAccessoryList();
- if (accessories != null) {
- logD("Found total " + accessories.length + " accessories");
- for (UsbAccessory accessory : accessories) {
- if (isAccessorySupported(accessory)) {
- connectToAccessory(accessory);
- break;
- }
- }
- } else {
- logI("No connected accessories found");
+ UsbAccessory acc = mConfig.getUsbAccessory();
+ if(acc == null || !isAccessorySupported(acc)){ //Check to see if our config included an accessory and that it is supported. If not, see if there are any other accessories connected.
+ UsbManager usbManager = getUsbManager();
+ UsbAccessory[] accessories = usbManager.getAccessoryList();
+ if (accessories != null) {
+ logD("Found total " + accessories.length + " accessories");
+ for (UsbAccessory accessory : accessories) {
+ if (isAccessorySupported(accessory)) {
+ acc = accessory;
+ break;
+ }
+ }
+ } else {
+ logI("No connected accessories found");
+ return;
+ }
}
+
+ connectToAccessory(acc);
}
/**
|