ทำไมฉันต้องเปิดบริการหาตำแหน่งเพื่อจับคู่กับอุปกรณ์บลูทู ธ


16

เมื่อใดก็ตามที่ฉันพยายามเชื่อมต่อ Samsung Galaxy S6 กับ Android 6.0.1 กับอุปกรณ์ที่ใช้เทคโนโลยี Bluetooth มันจะบอกให้ฉันเปิดใช้งาน "บริการระบุตำแหน่ง"

เมื่อฉันบ่นเกี่ยวกับเรื่องนี้ผู้จำหน่ายซอฟต์แวร์ตอบว่า: "การอัปเดตล่าสุดของ Google Android API ที่มีผลต่อเทคโนโลยี Bluetooth LE ต้องได้รับอนุญาตจากตำแหน่งเพื่อที่จะใช้แอพ"

ฉันไม่เห็นความต้องการในสิ่งนี้

การสนทนานี้พูดถึงเกี่ยวกับเรื่องนี้ อ้างอิงทางเทคนิคกล่าวว่าปพลิเคชันจะต้องมีบางอย่างสิทธิ์ไม่ว่าการให้บริการสถานที่ที่จะใช้งาน

ในการเข้าถึงตัวระบุฮาร์ดแวร์ของอุปกรณ์ภายนอกที่อยู่ใกล้เคียงผ่านการสแกนบลูทู ธ และ Wi-Fi ตอนนี้แอปของคุณจะต้องมีสิทธิ์ ACCESS_FINE_LOCATION หรือ ACCESS_COARSE_LOCATION

คำถาม : นี่หมายความว่าคำสั่งของผู้จำหน่ายซอฟต์แวร์ไม่ถูกต้องหรือไม่?


ระบบการอนุญาตมีการปรับโครงสร้าง MM อย่างสมบูรณ์แน่นอน (คำอธิบายบอกว่าพวกเขามี "บีคอนบลูทู ธ " ในใจซึ่งสามารถนำมาใช้เพื่อค้นหาคุณ) เพื่อความเข้าใจของฉันข้อสงสัยของคุณเป็นธรรมและคำสั่งของผู้ขายไม่ถูกต้อง: แอปต้องได้รับอนุญาตเพื่อเข้าถึงบลูทู ธ แต่ถ้าพวกเขาต้องการบริการบอกตำแหน่งเพื่อหาฮาร์ดแวร์ ("เลี้ยวขวาที่ข้อต่อประสานที่สองให้ส่งทรานซิสเตอร์ที่ประตู 3 ... ") ฉันจะแปลกใจ ฉันต้องสงสัยว่าต้องเปิดใช้บริการตำแหน่งอย่างมาก แต่ฉันไม่มีอุปกรณ์ MM ที่จะยืนยัน
อิซซี

คำตอบ:


6

ความเข้าใจเกี่ยวกับบลูทู ธ ของฉันคือแอพพลิเคชั่นที่ใช้บลูทู ธ มีการเข้าถึงโดยตรงไปยังที่อยู่ MAC ของอุปกรณ์เพื่อการจับคู่ ฉันจะสมมติสิ่งนี้สำหรับคำตอบนี้

หากคุณสามารถอ่านที่อยู่ MAC ของเครื่องส่งสัญญาณ WiFi หรือบลูทู ธ คุณสามารถค้นหาอุปกรณ์ นี่คือการทำงานของตำแหน่ง WiFi / Bluetooth คุณฟังที่อยู่ MAC ของเครื่องส่งสัญญาณและค้นหาสิ่งเหล่านี้ในฐานข้อมูลระดับโลกขนาดใหญ่

ดังนั้นแอปพลิเคชันใด ๆ ที่ใช้บลูทู ธ และการเชื่อมต่อข้อมูลจะสามารถระบุตำแหน่งอุปกรณ์ของคุณได้ในทางทฤษฎี ฉันไม่แน่ใจว่ามันเป็นไปได้จริง บลูทู ธ ไม่มีโครงสร้างพื้นฐานของจุดเข้าใช้งานแบบกึ่งถาวรและแบบกึ่งถาวรกับ WiFi

ด้วยการกำหนดให้บริการหาที่ตั้งเข้าถึงบลูทู ธ คุณมั่นใจได้ว่าผู้ใช้เข้าใจข้อมูลตำแหน่งของพวกเขาอาจรั่วไหลเมื่อใช้บลูทู ธ ใน Android เวอร์ชันก่อนหน้า Marshmallow ผู้ใช้สามารถใช้บลูทู ธ โดยไม่เปิดใช้งานบริการระบุตำแหน่ง แต่ข้อมูลตำแหน่งอาจรั่วไหลได้ ในรุ่นเก่าเหล่านี้คุณสามารถเรียกใช้การสแกน WiFi เพื่อค้นหาที่อยู่ MAC โดยไม่เปิดใช้งานบริการระบุตำแหน่งซึ่งหมายความว่าข้อมูลตำแหน่งของคุณอาจรั่วไหลอีกครั้ง ข้อกำหนดในการอนุญาตให้บริการตำแหน่งใช้บลูทู ธ นั้นเกี่ยวกับการทำให้มั่นใจว่าคนที่ปิดใช้งานตำแหน่งเก็บตำแหน่งของตนไว้เป็นส่วนตัว

ฉันจะอธิบายปัญหานี้ว่าเป็นปัญหาการออกแบบและไม่ใช่ข้อผิดพลาด ข้อผิดพลาดสามารถแก้ไขได้อย่างแน่นอน แต่ก็ไม่ชัดเจนสำหรับฉันคุณสามารถใช้บลูทู ธ ได้โดยไม่ต้องมีการรั่วไหลของข้อมูลตำแหน่ง บลูทู ธ ถูกสร้างขึ้นก่อนใคร ๆ ก็คิดว่าเป็นบริการ WiFi และบลูทู ธ


2

ผู้ขายถูกต้องคุณต้องเปิดใช้งานบริการระบุตำแหน่งเพื่อสแกนหาอุปกรณ์ WiFi หรือบลูทู ธ LE

ดูข้อผิดพลาด # 185370เพื่อดูรายละเอียด Google กล่าวว่าพวกเขาได้แก้ไขใน 'การเปิดตัวในอนาคต' แต่ตามความคิดเห็นเกี่ยวกับข้อผิดพลาดก็ยังไม่ได้รับการแก้ไขใน Android 7


แก้ไข: ก่อนหน้านี้ฉันกล่าวว่าบริการระบุตำแหน่งจำเป็นต้องใช้เฉพาะเมื่อแอปที่เริ่มการสแกนกำลังทำงานในพื้นหลัง ซอร์สโค้ดระบุว่าสิ่งนี้เป็นจริงเฉพาะเมื่อ API เป้าหมายคือ <Android M.


ถ้าเป็นข้อบกพร่องของ Android ทำไมผู้ขายถึงถูกต้อง? พวกเขาควรตอบกลับมาว่า: "นี่เป็นข้อผิดพลาดของ Android"
GUI Junkie

เป็นไปได้ไหมที่จะเชื่อมโยงอุปกรณ์กับบลูทู ธ นอกแอพ
GUI Junkie

คุณถามว่าคำสั่งของผู้ขายไม่ถูกต้อง มันไม่ถูกต้องคุณจะต้องให้สิทธิ์การเข้าถึงแอพ นอกจากนี้เนื่องจากข้อบกพร่องคุณต้องเปิดใช้งานบริการระบุตำแหน่ง
jomo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.