我在自定义主板上运行Android KitKat。我希望能够检测到何时插入USB驱动器,从驱动器中读取文本文件,然后根据文件内容更改Wi-Fi设置。
理想情况下,我想用shell脚本执行此操作;因为在我认为这是最快捷的方式之前,我从未编写过Android应用程序。但是我是Android新手,我不确定是否可以通过shell脚本做我想做的事情。我已经能够在启动时自动运行一个简单的脚本,但是当我插入USB驱动器时,/ dev中没有显示任何内容。
我不确定这是否是提出这个问题的最佳地点,但是有人可能会朝着正确的方向推动我吗?这是通过shell脚本实现的,还是我应该下载并下载并学习Android SDK?
由于
马龙
答案 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);