|
|
@ -76,6 +76,7 @@ public class QGCActivity extends QtActivity |
|
|
|
private static final String ACTION_USB_PERMISSION = "org.mavlink.qgroundcontrol.action.USB_PERMISSION"; |
|
|
|
private static final String ACTION_USB_PERMISSION = "org.mavlink.qgroundcontrol.action.USB_PERMISSION"; |
|
|
|
private static PendingIntent _usbPermissionIntent = null; |
|
|
|
private static PendingIntent _usbPermissionIntent = null; |
|
|
|
private TaiSync taiSync = null; |
|
|
|
private TaiSync taiSync = null; |
|
|
|
|
|
|
|
private Timer probeAccessoriesTimer = null; |
|
|
|
|
|
|
|
|
|
|
|
public static Context m_context; |
|
|
|
public static Context m_context; |
|
|
|
|
|
|
|
|
|
|
@ -225,7 +226,15 @@ public class QGCActivity extends QtActivity |
|
|
|
IntentFilter accessoryFilter = new IntentFilter(ACTION_USB_PERMISSION); |
|
|
|
IntentFilter accessoryFilter = new IntentFilter(ACTION_USB_PERMISSION); |
|
|
|
filter.addAction(UsbManager.ACTION_USB_ACCESSORY_DETACHED); |
|
|
|
filter.addAction(UsbManager.ACTION_USB_ACCESSORY_DETACHED); |
|
|
|
registerReceiver(mOpenAccessoryReceiver, accessoryFilter); |
|
|
|
registerReceiver(mOpenAccessoryReceiver, accessoryFilter); |
|
|
|
probeAccessories(); |
|
|
|
|
|
|
|
|
|
|
|
probeAccessoriesTimer = new Timer(); |
|
|
|
|
|
|
|
probeAccessoriesTimer.schedule(new TimerTask() { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void run() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
probeAccessories(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, 0, 3000); |
|
|
|
} catch(Exception e) { |
|
|
|
} catch(Exception e) { |
|
|
|
Log.e(TAG, "Exception: " + e); |
|
|
|
Log.e(TAG, "Exception: " + e); |
|
|
|
} |
|
|
|
} |
|
|
@ -243,6 +252,9 @@ public class QGCActivity extends QtActivity |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
protected void onDestroy() |
|
|
|
protected void onDestroy() |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
if (probeAccessoriesTimer != null) { |
|
|
|
|
|
|
|
probeAccessoriesTimer.cancel(); |
|
|
|
|
|
|
|
} |
|
|
|
unregisterReceiver(mOpenAccessoryReceiver); |
|
|
|
unregisterReceiver(mOpenAccessoryReceiver); |
|
|
|
try { |
|
|
|
try { |
|
|
|
if(_wakeLock != null) { |
|
|
|
if(_wakeLock != null) { |
|
|
@ -706,22 +718,26 @@ public class QGCActivity extends QtActivity |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Object probeAccessoriesLock = new Object(); |
|
|
|
|
|
|
|
|
|
|
|
private void probeAccessories() |
|
|
|
private void probeAccessories() |
|
|
|
{ |
|
|
|
{ |
|
|
|
final PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0); |
|
|
|
final PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0); |
|
|
|
new Thread(new Runnable() { |
|
|
|
new Thread(new Runnable() { |
|
|
|
public void run() { |
|
|
|
public void run() { |
|
|
|
Log.i(TAG, "probeAccessories"); |
|
|
|
synchronized(openAccessoryLock) { |
|
|
|
UsbAccessory[] accessories = _usbManager.getAccessoryList(); |
|
|
|
Log.i(TAG, "probeAccessories"); |
|
|
|
if (accessories != null) { |
|
|
|
UsbAccessory[] accessories = _usbManager.getAccessoryList(); |
|
|
|
for (UsbAccessory usbAccessory : accessories) { |
|
|
|
if (accessories != null) { |
|
|
|
if (_usbManager.hasPermission(usbAccessory)) { |
|
|
|
for (UsbAccessory usbAccessory : accessories) { |
|
|
|
openAccessory(usbAccessory); |
|
|
|
if (_usbManager.hasPermission(usbAccessory)) { |
|
|
|
} else { |
|
|
|
openAccessory(usbAccessory); |
|
|
|
Log.i(TAG, "requestPermission"); |
|
|
|
} else { |
|
|
|
_usbManager.requestPermission(usbAccessory, pendingIntent); |
|
|
|
Log.i(TAG, "requestPermission"); |
|
|
|
|
|
|
|
_usbManager.requestPermission(usbAccessory, pendingIntent); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}).start(); |
|
|
|
}).start(); |
|
|
|