package org.daoying.touchcodetest;
import java.util.HashMap;
import java.util.Iterator;
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.hardware.usb.UsbDevice;
import android.hardware.usb.UsbManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.InputDevice;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class TouchCodeActivity extends Activity {
protected static final String TAG = TouchCodeActivity.class.getSimpleName();
private TextView tv;
private Button btnPrint, btnCheckFileExist, btnReadFile;
private String[] joystickInfo = { "", "" };
private boolean bUsbDeviceDetached;
private boolean stopCheckJoystickThread;
private static final String ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) findViewById(R.id.tv);
tv.setText("");
tv.setScrollContainer(true);
btnPrint = (Button) findViewById(R.id.btnPrint);
btnCheckFileExist = (Button) findViewById(R.id.btnCheckFileExist);
btnReadFile = (Button) findViewById(R.id.btnReadFile);
btnPrint.setOnClickListener(listener);
btnCheckFileExist.setOnClickListener(listener);
btnReadFile.setOnClickListener(listener);
filter.addAction(Intent.ACTION_UMS_CONNECTED);
filter.addAction(Intent.ACTION_UMS_DISCONNECTED);
filter.addAction(Intent.ACTION_POWER_CONNECTED);
filter.addAction("android.intent.action.MEDIA_MOUNTED");
filter.addAction("android.intent.action.MEDIA_EJECT");
filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
filter.addAction(UsbManager.ACTION_USB_ACCESSORY_ATTACHED);
filter.addAction(UsbManager.ACTION_USB_ACCESSORY_DETACHED);
filter.addAction(UsbManager.EXTRA_PERMISSION_GRANTED);
filter.addAction(UsbManager.EXTRA_DEVICE);
filter.addAction(UsbManager.EXTRA_ACCESSORY);
filter.addAction("android.hardware.usb.action.USB_DEVICE_ATTACHED");
filter.addAction("android.hardware.usb.action.USB_ACCESSORY_ATTACHED");
UsbManager mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
PendingIntent mPermissionIntent = PendingIntent.getBroadcast(this, 0,
new Intent(ACTION_USB_PERMISSION), 0);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
new Thread(ListenerDeviceRunnable).start();
}
private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
tv.setText(tv.getText() + " onReceive = " + action + "\n");
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) {
Log.d(TAG,
"permission for device-------------------------- ");
}
} else {
Log.d(TAG, "permission denied for device " + device);
}
}
}
}
};
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
tv.setText(tv.getText() + "keyUp " + keyCode + "\n");
InputDevice device = event.getDevice();
if (device != null && device.getSources() == 0x1000511 && keyCode == 4) {
return true;
}
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
tv.setText(tv.getText() + "keyLongPress " + keyCode + "\n");
return super.onKeyLongPress(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// System.out.println(" keyCode = " + keyCode);
// int action = event.getAction();
// tv.setText(tv.getText() + " keyDown keyCode:" + keyCode +
// " Number:"+event.getNumber() + " ScanCode:" + event.getScanCode()
// + " Source:" + event.getSource() + " UnicodeChar:" +
// event.getUnicodeChar() + " DeviceId:" + event.getDeviceId()
// + " action:" + action + " \n");
// if(event.getDevice() != null){
// tv.setText(tv.getText() + " event.getDevice().getSources:" +
// event.getDevice().getSources()
// + ", name:" + event.getDevice().getName()
// + ", id:" + event.getDevice().getId()
// + ", string:" + event.getDevice().toString()
// + ", describeContents:" + event.describeContents());
// if(event.getDevice().getSources() == 0x1000511){
// tv.setText(tv.getText() + " joystick event");
// }
// }
// int code = Integer.parseInt("8" + Integer.toHexString(288) + "0000",
// 16);
// int code = 0x80000000 | (288 << 16);
// long code = Long.parseLong("8" + Integer.toHexString(288) + "0000",
// 16);
// System.out.println(" code = " + code);
// System.out.printf("code = 0x%x", code);
// InputDevice device = event.getDevice();
// if(device != null){
// String deviceIdentify = Integer.toHexString(device.get)
// }
tv.setText(tv.getText() + "keyDown keyCode = " + keyCode
+ ", scanCode = " + event.getScanCode() + "\n");
InputDevice device = event.getDevice();
if (device != null && device.getSources() == 0x1000511 && keyCode == 4) {
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onGenericMotionEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY();
tv.setText(tv.getText() + " onGenericMotionEvent x = " + event.getX()
+ " y = " + event.getY() + "\n");
if ((x == -1 && y == -1) || (x == 1 && y == 1) || (x == 1 && y == -1)
|| (x == -1 && y == 1)) {
return true;
} else {
return super.onGenericMotionEvent(event);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
System.out.println("onTouchEvent");
System.out.println("x = " + event.getX());
System.out.println("y = " + event.getY());
// tv.setText(tv.getText() + " onTouchEvent x = " + event.getX());
return super.onTouchEvent(event);
}
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (v == btnPrint) {
// printText();
} else if (v == btnCheckFileExist) {
// checkFile();
} else if (v == btnReadFile) {
tv.setText("");
// readFile();
}
}
};
@Override
protected void onResume() {
this.registerReceiver(receiver, filter);
registerReceiver(mUsbReceiver, filter);
super.onResume();
}
@Override
protected void onStop() {
this.unregisterReceiver(receiver);
this.unregisterReceiver(mUsbReceiver);
super.onStop();
}
private IntentFilter filter = new IntentFilter();
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
String action = arg1.getAction();
Log.d(TAG, "onReceive() action = " + action);
tv.setText(tv.getText() + " onReceive = " + action + "\n");
if (action.equals(Intent.ACTION_UMS_CONNECTED)) {
tv.setText(tv.getText() + " usb connected");
} else if (action.equals(Intent.ACTION_UMS_DISCONNECTED)) {
tv.setText(tv.getText() + " usb disconnected");
bUsbDeviceDetached = true;
}
if (action.equalsIgnoreCase("android.hardware.usb.action.USB_DEVICE_DETACHED")) {
//usb 设备拔出事件
bUsbDeviceDetached = true;
}
}
};
/**
* 这个线程在启动程序的时候启动,每隔3秒检测一次usb设备,实现热插拔。
* 由于是测试程序, 所以打印了很多东西出来。
*/
Runnable ListenerDeviceRunnable = new Runnable() {
@Override
public void run() {
UsbManager manager = (UsbManager)
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
TouchCodeTest.rar (44个子文件)
TouchCodeTest
bin
classes.dex 15KB
TouchCodeTest.apk 27KB
res
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
drawable-mdpi
icon.png 2KB
classes
org
daoying
touchcodetest
R$layout.class 415B
R$id.class 509B
R$drawable.class 421B
TouchCodeActivity$2.class 1KB
R$attr.class 361B
TouchCodeActivity$5.class 1KB
TouchCodeActivity.class 8KB
R.class 631B
R$string.class 448B
R$xml.class 415B
TouchCodeActivity$1.class 2KB
TouchCodeActivity$4.class 4KB
TouchCodeActivity$3.class 2KB
resources.ap_ 11KB
org
daoying
touchcodetest
R$layout.class 415B
R$id.class 509B
R$drawable.class 421B
TouchCodeActivity$2.class 1KB
R$attr.class 361B
TouchCodeActivity$5.class 1KB
TouchCodeActivity.class 8KB
R.class 631B
R$string.class 448B
R$xml.class 415B
TouchCodeActivity$1.class 2KB
TouchCodeActivity$4.class 5KB
TouchCodeActivity$3.class 2KB
res
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
values
strings.xml 181B
drawable-mdpi
icon.png 3KB
layout
main.xml 985B
xml
device_filter.xml 936B
assets
gen
org
daoying
touchcodetest
R.java 1015B
src
org
daoying
touchcodetest
TouchCodeActivity.java 12KB
.project 849B
.classpath 288B
project.properties 446B
AndroidManifest.xml 2KB
libs
armeabi
共 44 条
- 1
s278777851
- 粉丝: 30
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论30