在Android中监控USB驱动器插入和设置Wi-Fi的最佳方式

时间:2015-01-14 22:51:55

标签: android usb-drive

我在自定义主板上运行Android KitKat。我希望能够检测到何时插入USB驱动器,从驱动器中读取文本文件,然后根据文件内容更改Wi-Fi设置。

理想情况下,我想用shell脚本执行此操作;因为在我认为这是最快捷的方式之前,我从未编写过Android应用程序。但是我是Android新手,我不确定是否可以通过shell脚本做我想做的事情。我已经能够在启动时自动运行一个简单的脚本,但是当我插入USB驱动器时,/ dev中没有显示任何内容。

我不确定这是否是提出这个问题的最佳地点,但是有人可能会朝着正确的方向推动我吗?这是通过shell脚本实现的,还是我应该下载并下载并学习Android SDK?

由于

马龙

1 个答案:

答案 0 :(得分:1)

可以在shell脚本中检测USB设备插件或拔出行为,但这种方法不可靠且难看。同时,如何在shell脚本中连接USB设备后设置Wi-Fi?在应用层中执行的首选方法是设置BroadcastReceiver以检测事件,并针对不同事件执行基本的不同操作。在Android应用中,您可以这样做。

BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            final String action = intent.getAction();
            if (action.equals(UsbManager.ACTION_USB_ACCESSORY_ATTACHED)) {
                // TODO: handle accessory attache action
            } else if (action.equals(UsbManager.ACTION_USB_ACCESSORY_DETACHED)) {
                // TODO: handle accessory detach action
            } else if (action.equals(UsbManager.ACTION_USB_DEVICE_ATTACHED)) {
                // TODO: handle device attache action
            } else if (action.equals(UsbManager.ACTION_USB_DEVICE_DETACHED)) {
                // TODO: handle device detach action
            }
        }
    };

    IntentFilter intentFilter = new IntentFilter(UsbManager.ACTION_USB_ACCESSORY_ATTACHED);
    intentFilter.addAction(UsbManager.ACTION_USB_ACCESSORY_DETACHED);
    intentFilter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
    intentFilter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);

    registerReceiver(broadcastReceiver, intentFilter);