อุปกรณ์เฉพาะ

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

การจัดสรร

การจัดสรรแบบไม่ต้องสัมผัส ใน Glass Enterprise Edition 2 จะติดตั้งและกำหนดค่าแอปพลิเคชันสำหรับผู้ดูแลระบบที่ ดาวน์โหลดจากข้อมูลเมตาที่ระบุในคิวอาร์โค้ด แอปพลิเคชันนี้ใช้ประโยชน์จาก API ของ DevicePolicyManager ซึ่งเป็นวิธีที่แนะนำในการจัดการการกำหนดค่าของอุปกรณ์

แทนที่ Launcher

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

  • ตัวกรอง Intent ของกิจกรรม
  • ตั้งค่า Launcher ใหม่
  • ตัวกรอง Intent ของกิจกรรม

    คุณต้องเพิ่มหมวดหมู่ต่อไปนี้ลงในกิจกรรมหลักในไฟล์ Manifest ของแอปพลิเคชัน

    <intent-filter>
      <action android:name="android.intent.action.MAIN"/>
      <category android:name="android.intent.category.LAUNCHER"/>
    
      <category android:name="android.intent.category.HOME"/>
      <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>

    ตั้งค่า Launcher ใหม่

    หากต้องการตั้งค่าตัวเรียกใช้ใหม่ ให้เรียกใช้ addPersistentPreferredActivity() จากแอปพลิเคชันผู้ดูแลระบบ วิธีนี้จะใช้ได้ก็ต่อเมื่อมีการจัดสรรอุปกรณ์แล้วเท่านั้น สำหรับอุปกรณ์ที่ไม่ได้จัดสรร ให้เลือก Launcher ใหม่จาก UI ในอุปกรณ์

    เพิ่มกิจกรรมที่ต้องการแบบถาวร

    วิธีนี้ช่วยให้คุณตั้งค่า componentName ที่ต้องการเป็นตัวเรียกใช้ของอุปกรณ์ได้ โดยไม่ต้องโต้ตอบกับอุปกรณ์

    Kotlin

    val filter = IntentFilter(Intent.ACTION_MAIN)
    filter.addCategory(Intent.CATEGORY_HOME)
    filter.addCategory(Intent.CATEGORY_DEFAULT)
    
    val componentName = ComponentName(PACKAGE_NAME, CLASS_NAME)
    val devicePolicyManager: DevicePolicyManager =
        context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager
    val adminName = getComponentName(context)
    devicePolicyManager.addPersistentPreferredActivity(adminName, filter, componentName)

    Java

    final IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN);
    filter.addCategory(Intent.CATEGORY_HOME);
    filter.addCategory(Intent.CATEGORY_DEFAULT);
    
    final ComponentName componentName = new ComponentName(PACKAGE_NAME, CLASS_NAME);
    DevicePolicyManager devicePolicyManager =
        (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
    final adminName = getComponentName(context);
    devicePolicyManager.addPersistentPreferredActivity(adminName, filter, componentName);

    ใช้ UI ในอุปกรณ์

    ใช้วิธีใดวิธีหนึ่งต่อไปนี้เพื่อแสดงกล่องโต้ตอบการเลือก Launcher บนหน้าจอ

    การใช้ท่าทางสัมผัสปัดขึ้นในการตั้งค่า

    ปัดไปทางซ้ายบนหน้าจอหลักเพื่อแสดงหน้าจอบทสรุปการตั้งค่า จากนั้นแตะเพื่อเข้าสู่ หน้าจอการตั้งค่า ปัดขึ้นเพื่อแสดงกล่องโต้ตอบ

    การใช้ความตั้งใจในแอปพลิเคชัน

    Kotlin

    val intent = Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    startActivity(intent);

    Java

    final Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    startActivity(intent);
    การใช้คำสั่ง adb

    adb shell am start -a android.intent.action.MAIN -c android.intent.category.HOME

    ปัดไปข้างหน้าและข้างหลังบนทัชแพดเพื่อเลือกแอปพลิเคชันที่ต้องการ แล้วแตะเพื่อ ยืนยัน ใช้วิธีเดียวกันเพื่อเลือกปุ่ม "เสมอ"

    โหมดล็อกงาน

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

    ตั้งค่าแพ็กเกจที่อนุญาต

    ข้อมูลโค้ดต่อไปนี้แสดงวิธีตั้งค่ารายการแพ็กเกจ

    Kotlin

    private val KIOSK_PACKAGE = "com.example.kiosk"
    private val PLAYER_PACKAGE = "com.example.player"
    private val APP_PACKAGES = arrayOf(KIOSK_PACKAGE, PLAYER_PACKAGE)
    
    val devicePolicyManager: DevicePolicyManager =
      context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager
    val adminName = getComponentName(context)
    devicePolicyManager.setLockTaskPackages(adminName, APP_PACKAGES)

    Java

    private static final String KIOSK_PACKAGE = "com.example.kiosk";
    private static final String PLAYER_PACKAGE = "com.example.player";
    private static final String[] APP_PACKAGES = {KIOSK_PACKAGE, PLAYER_PACKAGE};
    
    final DevicePolicyManager devicePolicyManager =
        (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
    final ComponentName adminName = getComponentName(context);
    devicePolicyManager.setLockTaskPackages(adminName, APP_PACKAGES);

    เริ่มโหมดล็อกงาน

    กิจกรรมของแอปพลิเคชันสามารถเริ่มโหมด Lock Task ได้ ข้อมูลโค้ดต่อไปนี้แสดงวิธีดำเนินการ ดังกล่าว

    Kotlin

    override fun onResume() {
        super.onResume()
        activity.startLockTask()
    }

    Java

    @Override
    public void onResume() {
      super.onResume();
      getActivity().startLockTask();
    }