当前位置: 首页 > news >正文

重庆免费做网站男生和女生做污的事情免费网站

重庆免费做网站,男生和女生做污的事情免费网站,徐州泉山建设局网站,建设外贸企业网站当使用 Android 设备作为 USB 配件时#xff0c;可以使用 Android 提供的 USB Accessory API 来进行 USB 通信。以下是一个简单的 Android USB 配件模式的通信例子。在本例中#xff0c;我们将接收连接到 Android 设备的 USB 主机发送的数据并向 USB 主机发送响应。 首先可以使用 Android 提供的 USB Accessory API 来进行 USB 通信。以下是一个简单的 Android USB 配件模式的通信例子。在本例中我们将接收连接到 Android 设备的 USB 主机发送的数据并向 USB 主机发送响应。 首先在 AndroidManifest.xml 文件中添加以下权限 uses-feature android:nameandroid.hardware.usb.accessory / uses-permission android:nameandroid.permission.ACCESSORY / uses-permission android:nameandroid.permission.WAKE_LOCK /接着在 res/xml 文件夹中创建一个名为 accessory_filter.xml 的文件用于指定 USB 配件的属性及其应用程序的信息。以下是示例文件的内容 ?xml version1.0 encodingutf-8? resourcesusb-accessory modelAndroid Accessory manufacturerAndroid version1.0 / /resources在 Activity 中添加以下代码 private static final String TAG USBAccessoryDemo;private static final String ACTION_USB_PERMISSION com.example.android.usbaccessory.USB_PERMISSION; private static final int TIMEOUT 1000; private static final int MAX_PACKET_SIZE 16384;private UsbAccessory mAccessory; private UsbManager mUsbManager; private PendingIntent mPermissionIntent; private boolean mPermissionRequestPending; private UsbAccessoryConnection mAccessoryConnection;Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mUsbManager (UsbManager) getSystemService(Context.USB_SERVICE);mPermissionIntent PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0);IntentFilter filter new IntentFilter(ACTION_USB_PERMISSION);registerReceiver(mUsbReceiver, filter);HashMapString, UsbAccessory accessoryList mUsbManager.getAccessoryList();if (accessoryList ! null) {UsbAccessory accessory accessoryList.get(0);if (accessory ! null) {if (mUsbManager.hasPermission(accessory)) {openAccessory(accessory);} else {mUsbManager.requestPermission(accessory, mPermissionIntent);mPermissionRequestPending true;}} else {Log.d(TAG, accessory is null);}} else {Log.d(TAG, accessoryList is null);} }Override public void onResume() {super.onResume();if (mAccessoryConnection ! null mAccessoryConnection.isOpen()) {mAccessoryConnection.startReading();} }Override public void onPause() {super.onPause();if (mAccessoryConnection ! null mAccessoryConnection.isOpen()) {mAccessoryConnection.stopReading();} }Override protected void onDestroy() {super.onDestroy();unregisterReceiver(mUsbReceiver);if (mAccessoryConnection ! null mAccessoryConnection.isOpen()) {mAccessoryConnection.close();} }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) {UsbAccessory accessory (UsbAccessory) intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY);if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) {openAccessory(accessory);} else {Log.d(TAG, permission denied for accessory accessory);}mPermissionRequestPending false;}}} };private void openAccessory(UsbAccessory accessory) {mAccessoryConnection new UsbAccessoryConnection(this, accessory);mAccessoryConnection.open(); }private class UsbAccessoryConnection implements Runnable {private final UsbManager mUsbManager;private final UsbAccessory mAccessory;private UsbDeviceConnection mConnection;private UsbEndpoint mInEndpoint;private UsbEndpoint mOutEndpoint;private InputStream mInputStream;private OutputStream mOutputStream;private Thread mReadThread;private boolean mIsRunning;public UsbAccessoryConnection(Context context, UsbAccessory accessory) {mUsbManager (UsbManager) context.getSystemService(Context.USB_SERVICE);mAccessory accessory;}public void open() {mConnection mUsbManager.openAccessory(mAccessory);if (mConnection ! null) {mInEndpoint mAccessory.getEndpoint(0);mOutEndpoint mAccessory.getEndpoint(1);mInputStream new BufferedInputStream(mConnection.openInputStream(mInEndpoint), MAX_PACKET_SIZE);mOutputStream new BufferedOutputStream(mConnection.openOutputStream(mOutEndpoint), MAX_PACKET_SIZE);mIsRunning true;mReadThread new Thread(this);mReadThread.start();} else {Log.d(TAG, openAccessory failed);}}public void close() {mIsRunning false;if (mReadThread ! null) {try {mReadThread.join();} catch (InterruptedException e) {e.printStackTrace();}}if (mInputStream ! null) {try {mInputStream.close();} catch (IOException e) {e.printStackTrace();}}if (mOutputStream ! null) {try {mOutputStream.close();} catch (IOException e) {e.printStackTrace();}}if (mConnection ! null) {mConnection.close();}}public boolean isOpen() {return mConnection ! null;}public void startReading() {if (mReadThread ! null !mReadThread.isAlive()) {mIsRunning true;mReadThread new Thread(this);mReadThread.start();}}public void stopReading() {mIsRunning false;}public void write(byte[] data) {if (mOutputStream ! null) {try {mOutputStream.write(data);mOutputStream.flush();} catch (IOException e) {e.printStackTrace();}}}Overridepublic void run() {byte[] buffer new byte[MAX_PACKET_SIZE];while (mIsRunning) {try {int len mInputStream.read(buffer);if (len 0) {final String receivedData new String(buffer, 0, len);runOnUiThread(new Runnable() {Overridepublic void run() {// 处理接收到的数据}});}} catch (IOException e) {e.printStackTrace();mIsRunning false;}}} }在上面的代码中我们首先检查是否已连接 USB 配件。如果已连接则尝试打开连接。如果没有权限则请求权限。如果没有可用的 USB 配件则在日志中记录错误消息。 在打开连接后我们创建一个 UsbAccessoryConnection 对象并使用 open() 方法打开连接。在 open() 方法中我们获取连接的 UsbDeviceConnection 对象并使用它来获取读取和写入数据的输入/输出流。我们还启动了一个读线程该线程不断地从输入流中读取数据并将其传递给主线程以进行处理。 最后我们可以使用 write() 方法向 USB 主机发送数据并使用 close() 方法关闭连接。 以上就是Android usb 配件模式下的示例在实际的开发过程中会比较复杂但原理基本类似。如果文档对你有帮助欢迎点赞、收藏和评论谢谢
http://www.w-s-a.com/news/950637/

相关文章:

  • 化妆品网站建设网站惠州网站关键字优化
  • 保定网站制作企业下载天眼查企业查询官网
  • 中山企业网站建设公司制作一个景点的网站
  • 连云港集团网站建设株洲建设网站
  • 做运动鞋评价的网站南山做网站联系电话
  • 网站开发公众号开发海南做公司网站
  • 论企业网站建设的必要性微信小程序做一个多少钱
  • 网站制作价格是多少元上海市中小企业服务中心
  • 网站建设管理人员济宁网站建设top
  • 桂林网站建设桂林网站的元素有哪些
  • 广东网站开发推荐网页制作个人简历模板教程
  • e建网保定百度seo公司
  • 网站建设中html代码网络培训课堂app
  • 无锡做网站seo自己做的网站如何上传网上
  • 园林景观网站模板小白怎么做跨境电商
  • 找第三方做网站 需要注意企业网站带数据库
  • 北京南站到北京站flash网站制作单选框和复选框ui组件
  • 网站建设核电集团网站设计案例
  • 宝塔做的网站能不能访问上海的广告公司网站建设
  • 网站会员系统方案新能源网站建设哪家好
  • 全球网站域名域名被墙查询
  • 做期货看资讯什么网站好哈尔滨网站设计联系方式
  • 建站宝盒免费下载上海网论坛网址
  • 国内最有趣的25个网站推广流程
  • 红河做网站抖音小程序怎么挂到抖音上
  • 高度重视机关门户网站建设外包
  • 网站里面送礼物要钱怎么做代码网站开发怎么对接客户
  • 泰州网站制作策划如何做网站需求
  • 门户网站优化报价软件技术公司
  • 怎样换网站logo公司名字大全集免费