วิธีเปิดใช้งานการล็อกงานในอุปกรณ์การผลิต Android 5.0


12

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

แอพเจ้าของอุปกรณ์จะติดตั้งบนอุปกรณ์ Android L ได้อย่างไร


คุณทำสิ่งที่ sloved ปัญหาหรือไม่
KOTIOS


ขอบคุณ @Spynet - ดูเหมือนจะเป็นบทสรุปที่สมบูรณ์ที่สุดของการแก้ปัญหา
Adrian Cox

1
ดูที่นี่สำหรับคำแนะนำที่ดีกับ src: objectpartners.com/2014/11/04/…
Hayden Thring

คำตอบ:


14

( แก้ไข:อัปเดตหลังจากมีการทดสอบเพิ่มเติม)

ตรวจสอบเอกสารล่าสุด

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

มีสองวิธีในการเปิดใช้งานการตรึงหน้าจอ:

ด้วยตนเอง: ผู้ใช้สามารถเปิดใช้งานการปักหน้าจอในการตั้งค่า> ความปลอดภัย> การปักหมุดหน้าจอและเลือกงานที่ต้องการปักหมุดโดยแตะที่ไอคอนหมุดสีเขียวในหน้าจอล่าสุด โดยทางโปรแกรม: ในการเปิดใช้งานการปักหน้าจอแบบเป็นโปรแกรมให้โทร startLockTask () จากแอปของคุณ หากแอปที่ร้องขอไม่ใช่เจ้าของอุปกรณ์ผู้ใช้จะได้รับแจ้งให้ยืนยัน แอพเจ้าของอุปกรณ์สามารถเรียกใช้เมธอด setLockTaskPackages () เพื่อเปิดใช้งานแอปที่จะ pinnable โดยไม่ต้องมีขั้นตอนการยืนยันผู้ใช้

หากคุณเปิดใช้งานการปักหน้าจอแบบเป็นโปรแกรม (ไม่ใช่เจ้าของอุปกรณ์แอป) หรือบนอุปกรณ์โดยใช้หมุดในเนื้อหาล่าสุดคุณจะได้รับพฤติกรรมดังต่อไปนี้:

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

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

ในการรับโหมดคีออสก์ที่เหมาะสมเราจำเป็นต้องตั้งเจ้าของอุปกรณ์ เอกสารของ Google บอกว่าคุณต้องทำสิ่งนี้กับ NFC:

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

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

แต่เพื่อยืนยันการทำงานตามที่คาดไว้ถ้าคุณรูทอุปกรณ์คุณสามารถตั้งค่าเจ้าของอุปกรณ์ตามคำแนะนำก่อนหน้าของ Google (เพิ่ม device_owner.xml) ตามที่ฉันพูดถึงที่นี่

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

ตัวอย่างต่อไปนี้เปิดล็อค:

mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
mDeviceAdminSample = new ComponentName(this, DeviceAdminSample.class);

if (mDPM.isDeviceOwnerApp(this.getPackageName())) {
    Log.d(TAG, "isDeviceOwnerApp: YES");
    String[] packages = {this.getPackageName()};
    mDPM.setLockTaskPackages(mDeviceAdminSample, packages);
} else {
    Log.d(TAG, "isDeviceOwnerApp: NO");
}

if (mDPM.isLockTaskPermitted(this.getPackageName())) {
    Log.d(TAG, "isLockTaskPermitted: ALLOWED");
    startLockTask();
} else {
    Log.d(TAG, "isLockTaskPermitted: NOT ALLOWED");
}

ฉันคิดว่านี่เป็นคำตอบที่ดีที่สุดในขณะนี้ ขั้นตอน NFC ยังคงเป็นปริศนา แต่เป็นคำถามที่แคบกว่ามาก
Adrian Cox

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

1

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


1
dpmจะไม่ทำงานถ้ามีการตั้งค่าบัญชี (เช่นบัญชี Google) ในอุปกรณ์
Firelord

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