這篇部落格是針對之前的一篇文章android開發之usb資料通訊作的補充。主要是在開發中發現了另外兩個不得不面對的問題:
usb訪問許可權處理。
usb裝置插拔狀態監聽。
—usb訪問許可權處理——-
當我們安卓手機第一次安裝我們usb相關功能的apk時,正常情況下,手機會彈出個類似於「xx應用訪問usb裝置…」的提示框,如果使用者不接受的話,那肯定是不能進行usb通訊的。
要怎麼才能讓手機在安裝應用時彈出對應地提示框呢?答案就是在我們的專案中新增相應的許可權訪問的**。
1,在activity的oncreate()方法中註冊廣播:
private pendingintent mpermissionintent;
....
mpermissionintent = pendingintent.getbroadcast(this, 0, new intent(action_usb_permission), 0);
//註冊usb裝置許可權管理廣播
intentfilter filter = new intentfilter(action_usb_permission);
registerreceiver(usbreceiver, filter);
2,廣播處理:
private
final broadcastreceiver usbreceiver = new broadcastreceiver()
} else }}
}};
3,我們在查詢到usb裝置時,也應該判斷下裝置許可權,如果沒有許可權,則請求許可權:
if (!manager.haspermission(usb))
//注:usb是指usbdevice物件,manager是指usbmanager物件。
—-usb裝置插拔狀態監聽——
如果使用者在使用應用的過程中,有意或無意中拔出了usb裝置後,程式肯定也是不能進行操作的,當然我們也要做相應地判斷。
1,同樣是註冊廣播:
intentfilter filter = new intentfilter();
filter.addaction(usbmanager.action_usb_accessory_attached);
filter.addaction(usbmanager.action_usb_device_attached);
filter.addaction(usbmanager.action_usb_device_detached);
registerreceiver(usbstatereceiver, filter);
2,廣播**處理:
private
final broadcastreceiver usbstatereceiver = new broadcastreceiver() else
if (action.equals(usbmanager.action_usb_device_detached)) }};
//注1:usbmanager.action_usb_device_attached對應的廣播在usb每次插入時都能監聽到,所以用這個就可以監聽usb插入。
//注2:usbmanager.action_usb_device_detached用來監聽usb拔出廣播。
//注3:網上有不少資料是說通過android.hardware.usb.action.usb_state對應的廣播來監聽usb插拔,我在開發中發現該action只在usb插入的時候能監聽到,拔出時沒有作
安卓usb資料接收
之前在論壇裡面求助了關於監聽資料接收的問題,因為第一次做這方面,可能我提的問題太簡單了,大神都不願意回答我,之前的帖子 晚上翻牆瀏覽 發現問題的解決辦法,原文是 最近老闆讓弄安卓和一塊板子通訊,現在的情況是我第一次傳送資料可以接受到 一些引數的初始化 然後我再傳送資料,就接收不到了,資料肯定是傳送成...
安卓許可權大全
總結了安卓的apk許可權,5.0以後的執行時許可權後面有空補充。訪問登記屬性 android.permission.access checkin properties 讀取或寫入登記check in資料庫屬性表的許可權 獲取錯略位置 android.permission.access coarse ...
安卓許可權筆記
筆記,本人學識有限,有錯誤請指正。在寫發現許可權挺重要的,幾乎都得用到,因為本人手機為安卓9.0版本,做啥都要申請許可權,寫了好幾個,都需要用到,因此,趁這個時間,看一下許可權方面,整理一段能夠直接用的許可權申請 高版本的安卓什麼許可權都需要獲取許可權 動態獲取。原本 低版本 是直接在android...