安卓监听手机USB接口拔插警报广播
安卓监听手机USB接口拔插警报广播
很多场景我们都是需要监听手机拔插,手机都会自带一个广播去监听,我们手机充电,手机接入电脑的时候,一般都会有个小小的震动。在商场上,人多混杂,手机插在USB上,一旦有人想打手机的主意的话,如果没有什么警报措施的话,很容易被盗的。接下来看安卓知识。
既然是监听手机自身的广播,那么,首先我们得知道是那一个广播,看代码。
1、这个是我们所监听的广播,自定义一个UsbStateReceiver,Action指定为
android:name=”android.hardware.usb.action.USB_STATE”
<receiver android:name="com.example.usb.UsbStateReceiver" ><intent-filter android:priority="1000" ><action android:name="android.hardware.usb.action.USB_STATE" /></intent-filter></receiver>
2、在清单文件配置好后,我们做的警报无非就是发出警报的声音,和手机震动之类的。那么我们首先准备警报声音资源。在res文件下建一个文件夹raw存放警报声音。如下图:
3、我们这个时候将用起来这个声音文件以及震动,会想到这个时候需要哪些权限呢,百度、谷歌搜索了下,看下面权限。
<uses-permission android:name="android.permission.VIBRATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
上面的权限是使用手机震动和播放音效的时候用的。准备工作做好了,接下来做广播的核心编码了。
4、话不多说了,直接看代码吧:
/*** usb检测广播* * @author jian**/
public class UsbStateReceiver extends BroadcastReceiver {private Vibrator vibrator;// 手机震动private MediaPlayer mPlayer;//音乐播放@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);if (action.equals("android.hardware.usb.action.USB_STATE")) {if (intent.getExtras().getBoolean("connected")) {// usb 插入vibrator.cancel();// 停止震动Toast.makeText(context, "...插入", Toast.LENGTH_LONG).show();if (mPlayer != null) {if (mPlayer.isPlaying()) {mPlayer.pause();// 暂停mPlayer.stop();//停止mPlayer.release();//释放mPlayer = null;//Toast.makeText(context, "...stoping", Toast.LENGTH_LONG).show();}Toast.makeText(context, "...playing", Toast.LENGTH_LONG).show();}} else {if (mPlayer == null) {mPlayer = MediaPlayer.create(context, R.raw.mp);mPlayer.setLooping(true);// 可循环mPlayer.start();}/** usb 拔出 想设置震动大小可以通过改变pattern来设定,如果开启时间太短,震动效果可能感觉不到*/long[] pattern = { 100, 400, 100, 400 }; // 停止 开启 停止 开启vibrator.vibrate(pattern, 2); // 重复两次上面的pattern 如果只想震动一次,index设new Thread() {public void run() {try {sleep(600000);// 震动5秒钟停止震动vibrator.cancel();// 停止震动mPlayer.stop();// 停止音乐mPlayer.release();mPlayer = null;} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}};}.start();}}}}
这些用上后,你可以任何地方来注册这个广播了,商场展销直接后台开启监听。
安卓监听手机USB接口拔插警报广播相关推荐
- 【C#】Winform监听USB串口设备拔插
[C#]Winform监听USB串口设备拔插 零.问题 最近在开发串口相关的软件,需要检测串口拔掉后主动关闭串口,因此需要检测到USB的拔插事件. 一.解决 在主窗口From类下覆盖WndProc方法 ...
- 模拟usb重新插拔_Android 10带来黑科技 检测手机USB接口是否有液体或者是否过热...
谷歌昨天正式发布Android 10手机操作系统,同时谷歌全系列三代Pixel智能手机均可升级到Android 10正式版,而参与Android beta测试项目的智能手机厂商也同时为旗下部分智能手机 ...
- Android APP 检测和监听当前USB设备插入拔出以及读取VID/PID
一.列出所有的usb device设备,打印vip pid private boolean AllDeviceConnected(){UsbManager manager = (UsbManager) ...
- 2022-08-29 AndroidR 修改默认usb连接模式为MTP(Media Transfer Protocol)),UsbDeviceManager.java里面处理OTG口usb设备拔插侦听
一.默认是做为adb 调试功能,实际测试修改persist.sys.usb.config 是没有用. 二.拔插usb设备默认的选项是No data transfer 三.按下面的修改就可以修改默认u ...
- 解决安卓手机USB接口被外设占用导致无法调试的问题
安卓新人,在做一个通过安卓手机USB接口控制外部设备的项目. 开始就没有办法调试,因为USB接口被设备占用了, 只能用文本一次一次的把状态显示在主界面上,相当费劲,而且时不时程序就崩溃.基本没有办法对 ...
- android 监听手机电量变化
今天,简单讲讲如何监听手机电量的变化. 监听电量是不能静态注册的. 后来上网搜索,发现有五个不能静态注册的广播,这里记录一下,免得下次再后知后觉的发现并惊讶于自己的笨拙. 不能静态注册的广播: and ...
- android中多个usb接口吗,手机USB接口那么多 你真的全认识吗?
描述 根据调查发现,随着智能手机功能越来越多,功耗也越来越大,手机待机时间也随之变得越来越短,每天给手机充两次电已经成为一种常态.如果是手机控的话,充电次数远不止此. 我们都知道给手机充电需要将数据线 ...
- android外接usb摄像头demo_手机USB接口有哪些功能 手机USB接口功能介绍【详解】
手机身上的USB接口主要的任务就是充电,连接PC传输数据,你还能想到其他的功能吗?没错,它还能连接USB小风扇.小台灯等外设.但是,你以为所有手机在实现这些功能时的体验和效果都是一样的吗? 充电速度和 ...
- HTML5——监听手机的一些事件:手机加速度devicemotion、设备方向变化deviceorientation、手机摇一摇、指南针
1. devicemotion:监听手机加速度变化的事件(比如:手机疯狂摇摆) 属性:均为只读属性 (1)accelerationIncludingGravity:重力加速度(包括重心引力9.8) ( ...
最新文章
- redis学习之常用数据类型
- SDWC2017游记
- Leetcode 211. 添加与搜索单词 - 数据结构设计 解题思路及C++实现
- 2.5 matlab稀疏矩阵
- 【PAT笔记】PAT中的散列思想
- volatile与synchronized的区别
- 打字机已经被计算机所取代用英语,无法被电脑所取代的职业
- java调用自身_Java有趣的自己调用自己
- tensorflow GPU版本配置加速环境
- wps建立的文件后缀名为docx,写在里面的东西还不允许保存
- oracle 查询某天的数据
- CSPs-2020 T2 动物园
- MeeGo系统Atom处理器 神秘设备现身俄罗斯
- 联通将推自有品牌手机沃Phone 基于Android
- Longest Increasing Subsequence
- SQL 模拟生成商品订单表
- PHPStorm 配置 debug 默认参数
- 企业内容管理(ECM)与文档管理的区别及其优势
- 简单画布canvas的画法
- 拦截器和过滤器的同异