โดยปกติแล้ว 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(); }