欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

android掃描,Android掃描二維碼

Android實(shí)現(xiàn)二維碼掃描功能

1.//依賴注入

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了光澤免費(fèi)建站歡迎大家使用!

2.根據(jù)生命周期來(lái)對(duì)業(yè)務(wù)邏輯進(jìn)行處理

1.布局的聲明

2.Activity生命周期來(lái)處理業(yè)務(wù)邏輯

3.手機(jī)震動(dòng)方法處理(在掃描成功的方法中調(diào)用此方法就可以了)

private void vibrate() {

Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);

vibrator.vibrate(200);

}

Android WiFi掃描

Wifi scanning overview

必須權(quán)限如下:

除必須權(quán)限外,根據(jù)系統(tǒng)版本,還有不同的限制。具體如下

WifiManager.getScanResults() 方法的調(diào)用必須具備以下 任一 權(quán)限:

否則會(huì)拋異常 SecurityException 。

WifiManager.startScan() 方法的調(diào)用必須滿足以下 所有 條件:

否則會(huì)拋異常 SecurityException 。

Android對(duì) WifiManager.startScan() 的調(diào)用頻率進(jìn)行了限制。對(duì)于超過(guò)此頻率的接口訪問(wèn), WifiManager 不會(huì)執(zhí)行完整掃描,而是提供上次掃描所緩存的結(jié)果。

平均值:2211

wifi掃描有兩個(gè)必須權(quán)限:

另外,隨著Android系統(tǒng)的升級(jí),對(duì)WiFi掃描做了越來(lái)越嚴(yán)格的限制。系統(tǒng)對(duì) WifiManager.getScanResults() 和 WifiManager.startScan() 所做的限制不太一樣,但若要實(shí)現(xiàn)一個(gè)完整的WiFi掃描,就需要“掃描+獲取”兩個(gè)步驟,因此綜合來(lái)看,WiFi掃描的行為變化如下:

需要同時(shí)滿足以下所有條件:

font color='red'注意:以上是官方文檔的說(shuō)明,與實(shí)際測(cè)試的結(jié)果有出入,可能是手機(jī)廠商修改rom導(dǎo)致。/font

(小米MIX2 8.0,三星N9600 8.1.0下,不開定位服務(wù)也能獲取到WiFi列表)

Android藍(lán)牙掃描

藍(lán)牙掃描的目的在于發(fā)現(xiàn)設(shè)備或者接收設(shè)備廣播,設(shè)備包括經(jīng)典藍(lán)牙設(shè)備和BLE藍(lán)牙設(shè)備,這兩種設(shè)備的掃描方式不同。

對(duì)于經(jīng)典藍(lán)牙設(shè)備,掃描是通過(guò)調(diào)用startDiscovery接口,返回的結(jié)果是通過(guò)BroadcastReceiver接收的,可以獲取設(shè)備MAC地址,名稱以及RSSI。

startDiscovery是個(gè)異步調(diào)用,會(huì)立即返回。如果不調(diào)用cancelDiscovery主動(dòng)停止掃描的話,最多掃描12s。

廣播主要監(jiān)聽以下幾個(gè)Action:

BluetoothDevice.ACTION_FOUND

BluetoothAdapter.ACTION_DISCOVERY_STARTED

BluetoothAdapter.ACTION_DISCOVERY_FINISHED

另外要注意startDiscovery返回的設(shè)備不包括已配對(duì)設(shè)備,如要獲取已配對(duì)設(shè)備,需要額外調(diào)用getBondedDevices。

對(duì)于BLE藍(lán)牙設(shè)備,掃描是通過(guò)調(diào)用startLeScan接口,返回的結(jié)果是通過(guò)onLeScan回調(diào),除了獲得設(shè)備MAC地址,名稱及RSSI之外還能獲取設(shè)備廣播,廣播是以byte數(shù)組的形式表示的。

較新的Android版本提供了新的掃描接口,可更靈活地配置掃描策略,詳情可參考官網(wǎng)文檔,此處不再贅述。

一,需要打開以下權(quán)限

android.permission.BLUETOOTH

android.permission.ACCESS_COARSE_LOCATION

android.permission.BLUETOOTH_ADMIN

android.permission.ACCESS_FINE_LOCATION

另外還要注意動(dòng)態(tài)權(quán)限問(wèn)題,在Android 6.0(targetSdkVersion=23)之后,需要?jiǎng)討B(tài)申請(qǐng)獲取用戶位置的權(quán)限,不然獲取不到設(shè)備掃描結(jié)果。

二,startDiscovery在大多數(shù)手機(jī)上是可以同時(shí)發(fā)現(xiàn)經(jīng)典藍(lán)牙和Ble的,但是startDiscovery的回調(diào)無(wú)法返回BLE的廣播,所以無(wú)法通過(guò)廣播識(shí)別設(shè)備,且startDiscovery掃描BLE的效率比startLeScan低很多。所以在實(shí)際應(yīng)用中,還是startDiscovery和startLeScan分開掃,前者掃經(jīng)典藍(lán)牙,后者掃低功耗藍(lán)牙。

三,startLeScan() 的時(shí)候,在onLeScan() 中不能做耗時(shí)操作,特別是周圍的BLE設(shè)備多的時(shí)候,容易導(dǎo)致底層堵塞,如果有耗時(shí)操作請(qǐng)丟到子線程中去處理。如解析廣播識(shí)別設(shè)備等操作可能會(huì)較耗時(shí)。

四,實(shí)踐中發(fā)現(xiàn)同樣一個(gè)設(shè)備,有的手機(jī)很容易就掃出來(lái)了,有的手機(jī)很難掃出來(lái)。這種情況建議可以多掃幾次,每次掃描時(shí)間短一點(diǎn)。

網(wǎng)站題目:android掃描,Android掃描二維碼
轉(zhuǎn)載來(lái)于:http://chinadenli.net/article7/dsepeoj.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司面包屑導(dǎo)航網(wǎng)站維護(hù)品牌網(wǎng)站設(shè)計(jì)網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司