package
com.example.usb_test;
import
android.hardware.usb.UsbDevice;
import
android.hardware.usb.UsbDeviceConnection;
import
android.hardware.usb.UsbEndpoint;
import
android.hardware.usb.UsbInterface;
import
android.hardware.usb.UsbManager;
import
android.os.Bundle;
import
android.app.Activity;
import
android.app.PendingIntent;
import
android.content.BroadcastReceiver;
import
android.content.Context;
import
android.content.Intent;
import
android.content.IntentFilter;
import
android.util.Log;
import
android.view.Menu;
import
android.widget.TextView;
public
class
MainActivity
extends
Activity {
TextView display;
Intent intent = getIntent();
private
PendingIntent mPermissionIntent;
private
static
final
String TAG =
"USB,MainActivity"
;
private
byte
[] bytes;
private
static
int
TIMEOUT =
0
;
private
boolean
forceClaim =
true
;
UsbDevice device = (UsbDevice) intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
private
static
final
String ACTION_USB_PERMISSION =
"com.android.example.USB_PERMISSION"
;
private
final
BroadcastReceiver mUsbReceiver =
new
BroadcastReceiver() {
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
){
}
}
else
{
Log.d(TAG,
"permission denied for device "
+ device);
}
}
}
}
};
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
display = (TextView) findViewById(R.id.num_display);
mPermissionIntent = PendingIntent.getBroadcast(
this
,
0
,
new
Intent(ACTION_USB_PERMISSION),
0
);
IntentFilter filter =
new
IntentFilter(ACTION_USB_PERMISSION);
registerReceiver(mUsbReceiver, filter);
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return
true
;
}
public
void
run(){
int
num =
0
;
UsbInterface intf = device.getInterface(
0
);
UsbEndpoint endpoint = intf.getEndpoint(
1
);
UsbManager mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
UsbDeviceConnection connection = mUsbManager.openDevice(device);
connection.claimInterface(intf, forceClaim);
num = connection.bulkTransfer(endpoint, bytes, bytes.length, TIMEOUT);
display.setText(
"Number is "
+ num);
}
}