แก้ไขแล้ว: วิธีตรวจสอบว่าตำแหน่งเปิดใช้งาน Android หรือไม่

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

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

public boolean isLocationEnabled(Context context) {
    int locationMode = 0;
    String locationProviders;

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        try {
            locationMode = Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE);

        } catch (Settings.SettingNotFoundException e) {
            e.printStackTrace();
        }

        return locationMode != Settings.Secure.LOCATION_MODE_OFF;

    } else {
        locationProviders = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
        return !TextUtils.isEmpty(locationProviders);
    }
}

ทำความเข้าใจโค้ด

รหัสที่ระบุข้างต้นจะตรวจสอบว่าบริการระบุตำแหน่งเปิดใช้งานบนอุปกรณ์ Android ใด ๆ หรือไม่ในสองขั้นตอนหลัก:

– หากอุปกรณ์เป็นเวอร์ชัน KitKat หรือสูงกว่า อุปกรณ์จะพยายามรับการตั้งค่าโหมดตำแหน่งและตรวจสอบว่าเป็นอย่างอื่นนอกเหนือจาก 'โหมดตำแหน่งปิด' หรือไม่ หากเป็นเช่นนั้น จะเป็นการยืนยันว่าตำแหน่งนั้นเปิดใช้งานอยู่
– สำหรับอุปกรณ์ที่ทำงานบนเวอร์ชันที่เก่ากว่า KitKat อุปกรณ์จะรับรายชื่อผู้ให้บริการตำแหน่งที่ได้รับอนุญาตและตรวจสอบว่าว่างเปล่าหรือไม่ หากรายการไม่ว่างเปล่า แสดงว่ามีการเปิดใช้งานตำแหน่งแล้ว

บทบาทของไลบรารีและฟังก์ชันต่างๆ

ในโค้ดนี้ เราได้ใช้ฟังก์ชันและไลบรารีเฉพาะบางประการ โดยส่วนใหญ่มาจากชุดนักพัฒนา Android:

  • รุ่น.SDK_INT: นี่คือฟิลด์ที่เก็บเวอร์ชัน SDK ของแพลตฟอร์มที่ทำงานบนอุปกรณ์ในปัจจุบัน
  • การตั้งค่าปลอดภัย: นี่คือคลาสที่จัดการการเข้าถึงการตั้งค่าระบบความปลอดภัยส่วนกลาง โดยหลักแล้วการตั้งค่าระบบที่ส่งผลต่อความเป็นส่วนตัวของผู้ใช้
  • การตั้งค่า Secure.getInt: วิธีการนี้จะส่งกลับค่าการตั้งค่าจำนวนเต็มที่ปลอดภัยสำหรับชื่อที่กำหนด
  • การตั้งค่า.Secure.LOCATION_MODE: ใช้เพื่อรับการตั้งค่าโหมดตำแหน่งปัจจุบัน
  • การตั้งค่า Secure.LOCATION_PROVIDERS_ALLOWED: รับรายชื่อผู้ให้บริการสถานที่ที่ได้รับอนุญาต

การปรับเปลี่ยนสำหรับ Android เวอร์ชันต่างๆ

Android มีการพัฒนาอย่างมากตลอดทศวรรษที่ผ่านมา และแต่ละเวอร์ชันมาพร้อมกับคุณลักษณะและการตั้งค่าเฉพาะของตัวเอง ดังนั้น โค้ดคำแนะนำจะต้องคำนึงถึงความแตกต่างเล็กๆ น้อยๆ ที่ปรากฏใน Android เวอร์ชันต่างๆ

รหัสที่ให้มาจะตรวจสอบตำแหน่งที่เปิดใช้งานใน Android เวอร์ชันต่างๆ อย่างครอบคลุม โดยเน้นไปที่เวอร์ชัน KitKat ซึ่งมีการนำ "โหมดตำแหน่ง" มาใช้ การแบ่งขั้วนี้แบ่งแนวทางการประเมินออกเป็นสองประเภทหลัก ได้แก่ ประเภทหนึ่งสำหรับ Android เวอร์ชัน KitKat ขึ้นไป และอีกประเภทหนึ่งสำหรับเวอร์ชันที่ต่ำกว่า KitKat

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

กระทู้ที่เกี่ยวข้อง:

แสดงความคิดเห็น