summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2016-11-07 09:17:48 -0500
committerGitHub <noreply@github.com>2016-11-07 09:17:48 -0500
commitf0b5a5913dc15ada87888c24f942199f7b306861 (patch)
treeacc5e9fd69d2fc68fe441f10c7de36359ced72ef
parent43bcb357f37b248f9aa2c976e2de35eb1e74963a (diff)
parentc521e40d952c661ace80425a6ed168351b70c374 (diff)
downloadsdl_android-f0b5a5913dc15ada87888c24f942199f7b306861.tar.gz
Merge pull request #337 from smartdevicelink/feature/aoa_improvements
AOA improvements
-rw-r--r--sdl_android_lib/AndroidManifest.xml2
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/transport/SdlBroadcastReceiver.java10
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/transport/USBTransport.java30
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);
}
/**