Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to communicate with a USB device?
    primarykey
    data
    text
    <p>I am trying to establish USB communication as host. I am following the examples here <a href="http://developer.android.com/guide/topics/usb/host.html">http://developer.android.com/guide/topics/usb/host.html</a> but I cannot get this working. Here is my code:</p> <pre><code>private static final String ACTION_USB_PERMISSION = "com.multitools.andres.LCView"; UsbDevice device; //Pide permisos al usuario para comunicacion con el dispositivo USB private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (ACTION_USB_PERMISSION.equals(action)) { synchronized (this) { UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) { if(device != null){ //call method to set up device communication } } else { Log.d(TAG, "permission denied for device " + device); } } } } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if(DEBUG) Log.i(TAG, "onCreate() -&gt; MainMenu"); actionBar = getActionBar(); //obtengo el ActionBar actionBar.setDisplayHomeAsUpEnabled(true); //el icono de la aplicacion funciona como boton HOME //Menu setListAdapter(new ArrayAdapter&lt;String&gt;(MainMenu.this, android.R.layout.simple_list_item_1, MenuNames)); //USB if(DEBUG) Log.i(TAG, "Setting UsbManager -&gt; MainMenu"); UsbManager mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE); PendingIntent mPermissionIntent; if(DEBUG) Log.i(TAG, "Setting PermissionIntent -&gt; MainMenu"); mPermissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0); if(DEBUG) Log.i(TAG, "Setting IntentFilter -&gt; MainMenu"); IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION); if(DEBUG) Log.i(TAG, "Setting registerReceiver -&gt; MainMenu"); registerReceiver(mUsbReceiver, filter); if(DEBUG) Log.i(TAG, "Setting requestPermission -&gt; MainMenu"); mUsbManager.requestPermission(device, mPermissionIntent); } </code></pre> <p>I get the Force Close dialog when I uncomment the line <code>mUsbManager.requestPermission(device, mPermissionIntent);</code> If I comment it, I don't get the force close but it doesnt work. I think the problem is in:</p> <pre><code>private static final String ACTION_USB_PERMISSION = "com.multitools.andres.LCView"; </code></pre> <p>On Google's example it is as:</p> <pre><code>private static final String ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION"; </code></pre> <p>But I dont know what exactly I have to put there and i could not find any explanation about that. What i have to put there or where is my error ? Here is the LogCat i am getting when i start my application:</p> <pre><code>04-17 00:57:50.944: I/dalvikvm(1362): threadid=3: reacting to signal 3 04-17 00:57:51.331: I/dalvikvm(1362): Wrote stack traces to '/data/anr/traces.txt' 04-17 00:57:51.981: I/(1362): onCreate() -&gt; MainMenu 04-17 00:57:52.013: I/dalvikvm(1362): threadid=3: reacting to signal 3 04-17 00:57:52.151: I/dalvikvm(1362): Wrote stack traces to '/data/anr/traces.txt' 04-17 00:57:52.570: I/dalvikvm(1362): threadid=3: reacting to signal 3 04-17 00:57:52.731: I/dalvikvm(1362): Wrote stack traces to '/data/anr/traces.txt' 04-17 00:57:53.122: I/dalvikvm(1362): threadid=3: reacting to signal 3 04-17 00:57:53.231: I/dalvikvm(1362): Wrote stack traces to '/data/anr/traces.txt' 04-17 00:57:53.390: I/(1362): Setting UsbManager -&gt; MainMenu 04-17 00:57:53.451: I/(1362): Setting PermissionIntent -&gt; MainMenu 04-17 00:57:53.470: I/(1362): Setting IntentFilter -&gt; MainMenu 04-17 00:57:53.470: I/(1362): Setting registerReceiver -&gt; MainMenu 04-17 00:57:53.511: I/(1362): Setting requestPermission -&gt; MainMenu 04-17 00:57:53.660: I/dalvikvm(1362): threadid=3: reacting to signal 3 04-17 00:57:53.791: I/dalvikvm(1362): Wrote stack traces to '/data/anr/traces.txt' 04-17 00:57:54.311: I/dalvikvm(1362): threadid=3: reacting to signal 3 04-17 00:57:54.401: I/dalvikvm(1362): Wrote stack traces to '/data/anr/traces.txt' 04-17 00:57:54.531: I/(1362): onCreateOptionsMenu() -&gt; MainMenu 04-17 00:57:54.683: I/dalvikvm(1362): threadid=3: reacting to signal 3 04-17 00:57:54.772: I/dalvikvm(1362): Wrote stack traces to '/data/anr/traces.txt' 04-17 00:57:55.186: I/dalvikvm(1362): threadid=3: reacting to signal 3 04-17 00:57:55.291: I/dalvikvm(1362): Wrote stack traces to '/data/anr/traces.txt' 04-17 00:57:55.661: I/dalvikvm(1362): threadid=3: reacting to signal 3 04-17 00:57:55.751: I/dalvikvm(1362): Wrote stack traces to '/data/anr/traces.txt' 04-17 00:57:55.791: D/gralloc_goldfish(1362): Emulator without GPU emulation detected. 04-17 01:11:47.323: I/dalvikvm(1459): threadid=3: reacting to signal 3 04-17 01:11:47.720: I/dalvikvm(1459): Wrote stack traces to '/data/anr/traces.txt' 04-17 01:11:48.124: I/dalvikvm(1459): threadid=3: reacting to signal 3 04-17 01:11:48.291: I/dalvikvm(1459): Wrote stack traces to '/data/anr/traces.txt' 04-17 01:11:48.452: I/(1459): onCreate() -&gt; MainMenu 04-17 01:11:48.691: I/dalvikvm(1459): threadid=3: reacting to signal 3 04-17 01:11:48.813: I/dalvikvm(1459): Wrote stack traces to '/data/anr/traces.txt' 04-17 01:11:49.172: I/dalvikvm(1459): threadid=3: reacting to signal 3 04-17 01:11:49.321: I/dalvikvm(1459): Wrote stack traces to '/data/anr/traces.txt' 04-17 01:11:49.653: I/dalvikvm(1459): threadid=3: reacting to signal 3 04-17 01:11:49.821: I/dalvikvm(1459): Wrote stack traces to '/data/anr/traces.txt' 04-17 01:11:49.901: I/(1459): Setting UsbManager -&gt; MainMenu 04-17 01:11:49.931: I/(1459): Setting PermissionIntent -&gt; MainMenu 04-17 01:11:50.021: I/(1459): Setting IntentFilter -&gt; MainMenu 04-17 01:11:50.031: I/(1459): Setting registerReceiver -&gt; MainMenu 04-17 01:11:50.051: I/(1459): Setting requestPermission -&gt; MainMenu 04-17 01:11:50.071: D/AndroidRuntime(1459): Shutting down VM 04-17 01:11:50.133: W/dalvikvm(1459): threadid=1: thread exiting with uncaught exception (group=0x409c01f8) 04-17 01:11:50.231: I/dalvikvm(1459): threadid=3: reacting to signal 3 04-17 01:11:50.331: I/dalvikvm(1459): Wrote stack traces to '/data/anr/traces.txt' 04-17 01:11:50.401: E/AndroidRuntime(1459): FATAL EXCEPTION: main 04-17 01:11:50.401: E/AndroidRuntime(1459): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.multitools.andres/com.multitools.andres.MainMenu}: java.lang.NullPointerException 04-17 01:11:50.401: E/AndroidRuntime(1459): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 04-17 01:11:50.401: E/AndroidRuntime(1459): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 04-17 01:11:50.401: E/AndroidRuntime(1459): at android.app.ActivityThread.access$600(ActivityThread.java:123) 04-17 01:11:50.401: E/AndroidRuntime(1459): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 04-17 01:11:50.401: E/AndroidRuntime(1459): at android.os.Handler.dispatchMessage(Handler.java:99) 04-17 01:11:50.401: E/AndroidRuntime(1459): at android.os.Looper.loop(Looper.java:137) 04-17 01:11:50.401: E/AndroidRuntime(1459): at android.app.ActivityThread.main(ActivityThread.java:4424) 04-17 01:11:50.401: E/AndroidRuntime(1459): at java.lang.reflect.Method.invokeNative(Native Method) 04-17 01:11:50.401: E/AndroidRuntime(1459): at java.lang.reflect.Method.invoke(Method.java:511) 04-17 01:11:50.401: E/AndroidRuntime(1459): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 04-17 01:11:50.401: E/AndroidRuntime(1459): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 04-17 01:11:50.401: E/AndroidRuntime(1459): at dalvik.system.NativeStart.main(Native Method) 04-17 01:11:50.401: E/AndroidRuntime(1459): Caused by: java.lang.NullPointerException 04-17 01:11:50.401: E/AndroidRuntime(1459): at android.os.Parcel.readException(Parcel.java:1333) 04-17 01:11:50.401: E/AndroidRuntime(1459): at android.os.Parcel.readException(Parcel.java:1281) 04-17 01:11:50.401: E/AndroidRuntime(1459): at android.hardware.usb.IUsbManager$Stub$Proxy.requestDevicePermission(IUsbManager.java:535) 04-17 01:11:50.401: E/AndroidRuntime(1459): at android.hardware.usb.UsbManager.requestPermission(UsbManager.java:361) 04-17 01:11:50.401: E/AndroidRuntime(1459): at com.multitools.andres.MainMenu.onCreate(MainMenu.java:80) 04-17 01:11:50.401: E/AndroidRuntime(1459): at android.app.Activity.performCreate(Activity.java:4465) 04-17 01:11:50.401: E/AndroidRuntime(1459): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 04-17 01:11:50.401: E/AndroidRuntime(1459): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 04-17 01:11:50.401: E/AndroidRuntime(1459): ... 11 more 04-17 01:11:50.751: I/dalvikvm(1459): threadid=3: reacting to signal 3 04-17 01:11:50.851: I/dalvikvm(1459): Wrote stack traces to '/data/anr/traces.txt' 04-17 01:11:51.331: I/dalvikvm(1459): threadid=3: reacting to signal 3 04-17 01:11:51.403: I/dalvikvm(1459): Wrote stack traces to '/data/anr/traces.txt' 04-17 01:11:51.774: I/dalvikvm(1459): threadid=3: reacting to signal 3 04-17 01:11:51.961: I/dalvikvm(1459): Wrote stack traces to '/data/anr/traces.txt' </code></pre> <p>Thanks you :)</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload