今天在酷安閒逛時下載了脈脈App,一打開就推薦了認識的人,第一反應是獲取了個人手機號,但啓動時也沒有手機信息相關權限,確認了下權限管理確實都關了,拿iphone測了下也能推薦 bash
看了下都是公司同事,我推測是基於位置推薦的,沒有定位權限多是經過Wifi信息,而後我關了Wifi,改用移動網絡再進入App發現推薦的用戶爲默認數據,基於Wifi的信息創建用戶數據關聯,打開App時獲取我手機的Wifi的惟一ID創建用戶匹配推薦展現,當我登陸時會關聯一個Wifi ID的列表,記錄該用戶在哪些Wifi下使用過,推薦給可能認識的人。 網絡
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifiManager.getConnectionInfo ();
String ssid = info.getSSID();//SSID就是手機上搜索到的wifi名字(本質是一串字符)
String bssid = info.getBSSID();//BSSID至關於無線路由器的惟一值(本質是一個MAC地址)
複製代碼
這個Wifi的惟一ID就是BSSID,可是Android8.1及以上在不開啓定位權限時
獲取SSID爲:unknown ssid
獲取BSSID爲:02:00:00:00:00:00iphone
在Android8.1上Wifi模塊源碼有更新,Google 認爲以前關於位置/定位權限,在用戶不開啓 APP 定位權限的狀況下,APP 依然能夠經過 WifiInfo 的相關信息,好比 SSID/BSSID,去得到用戶位置信息,這顯然不合理,是個位置權限的 bug。spa
這裏記錄下這個案例在之後能夠參考使用提升用戶註冊轉化率3d