วิธีบังคับให้การตรวจจับคำที่นิยม 'ตกลง Google' ทำงานเมื่อหน้าจอปิดบนอุปกรณ์ใด ๆ [รูท]

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

เมื่อ Moto X (2013) เปิดตัวครั้งแรก หนึ่งในคุณสมบัติที่น่าตื่นเต้นที่สุด (นอกเหนือจาก Ambient Display) ก็คือความสามารถในการตื่นขึ้นมาด้วยคำสั่งเสียง

เปิดตัวในภายหลังในอุปกรณ์ Google Nexus และตอนนี้มีให้บริการในรุ่นเรือธงหลายรุ่น ความสามารถในการจดจำคำที่นิยมคือ คุณสมบัติที่ยอดเยี่ยมมากเมื่อคุณต้องการค้นหาบน Google อย่างรวดเร็วโดยไม่ต้องคลำหาอุปกรณ์ในตัวคุณ มือ. สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อคุณวางโทรศัพท์ไว้ในรถ และคุณต้องเริ่มการนำทางไปยังจุดหมายปลายทางบางแห่ง การใช้เสียงของคุณเพื่อเริ่มการนำทางของ Google Maps จะปลอดภัยกว่ามาก

น่าเสียดายที่การเรียกใช้คำสั่ง "OK Google" ได้ตลอดเวลาต้องใช้ชิปจดจำเสียงพิเศษที่ใช้พลังงานต่ำในอุปกรณ์ของคุณ แม้ว่าฮาร์ดแวร์นี้มีอยู่ในอุปกรณ์หลายชนิด แต่ก็ไม่ได้มีอยู่ในอุปกรณ์ทั้งหมด แม้แต่เรือธงที่ทรงพลังและมีราคาแพงอย่าง Huawei Mate 9 ก็ไม่เสนอข้อเสนอนี้ สำหรับอุปกรณ์เช่นของฉัน Google นำเสนอความสามารถในการเรียกใช้คำสั่งเสียง "ตกลง Google" ในขณะที่หน้าจอเปิดอยู่หรือเมื่ออุปกรณ์เสียบเข้ากับเครื่องชาร์จ

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

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


การตรวจจับคำที่นิยม "ตกลง Google" บนอุปกรณ์ใด ๆ

คำถามที่ฉันถามตัวเองเมื่อคิดถึงวิธีแก้ไขปัญหานี้คือ:

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

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

โชคดีที่มีเวทย์มนตร์รูทเล็กน้อยและการใช้คำสั่งดีบักอย่างชาญฉลาด สิ่งนี้เป็นไปได้มาก! ฉันสามารถทำได้โดยใช้คำสั่งดีบักเชลล์เพื่อการทดสอบ หลอกอุปกรณ์ของฉันให้คิดว่ากำลังชาร์จอยู่ แม้จะไม่ได้เสียบปลั๊กจากแหล่งพลังงานใดๆ ก็ตาม คำสั่งที่เราจะใช้เพื่อวัตถุประสงค์ของเราคือ dumpsys batteryพารามิเตอร์ที่คุณสามารถอ่านได้ โพสต์ในบล็อกนี้โดย Roman Mazur.

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

สิ่งที่น่าสังเกตเป็นพิเศษคือ dumpsys battery set คำสั่งซึ่งยอมรับพารามิเตอร์เพื่อกำหนดว่าอุปกรณ์กำลังชาร์จผ่าน AC, USB หรือการชาร์จแบบไร้สายหรือไม่ ตัวอย่างเช่น ถ้าเราเปิดรูทเชลล์ใน Android แล้วป้อนคำสั่งต่อไปนี้ อุปกรณ์จะคิดว่ากำลังชาร์จผ่านไฟ AC

su
dumpsys battery set ac 1

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

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

ข้อเสียเปรียบ # 1 - ตัวบ่งชี้แบตเตอรี่แช่แข็ง

หลังจากป้อนคำสั่ง "dumpsys battery set" แล้ว บริการ BatteryManager ของ Android จะดำเนินการ ให้หยุดสะสมทันที ข้อมูลเพิ่มเติมเกี่ยวกับสถานะแบตเตอรี่ของคุณ ซึ่งหมายความว่าระบบ Android จะไม่รายงานระดับแบตเตอรี่ อุณหภูมิ กระแสไฟฟ้า แรงดันไฟฟ้า สุขภาพของคุณอีกต่อไป พวกมันจะ "หยุด" แทนทันทีเมื่อคุณป้อนคำสั่ง

อย่างไรก็ตามข้อมูลนี้ก็คือ ยังคงถูกรวบรวมโดยระบบ แม้จะเข้าใช้งานได้จากแอปพลิเคชันใดๆ ก็ตาม หากคุณต้องการรับข้อมูลอัปเดตว่าระดับแบตเตอรี่ปัจจุบันของคุณอยู่ที่ระดับใด คุณจะต้องใช้กลอุบายบางอย่าง โชคดีที่ดึงข้อมูลได้ค่อนข้างง่าย หากคุณมี Tasker หรือแอปพลิเคชันอัตโนมัติอื่น ๆ สิ่งที่คุณต้องทำคือสร้างการแจ้งเตือนที่อัปเดตด้วยการแตะโดยมีข้อความปัจจุบันจัดเก็บไว้ใน /sys/class/power_supply/battery/capacity

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

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

dumpsys battery reset

ด้านล่างนี้คุณจะพบคำอธิบายของโปรไฟล์ Tasker ทั้งสองที่คุณต้องตั้งค่าเพื่อเรียกใช้คำสั่งนี้เมื่อหน้าจอปิดอยู่ แต่ปิดใช้งานเมื่อหน้าจอเปิดอยู่ โดยพื้นฐานแล้ว คุณจะต้องสร้างบริบท "กิจกรรม" สองบริบท โดยรายการหนึ่งคือเหตุการณ์ "ปิดการแสดงผล" ในขณะที่อีกบริบทหนึ่งคือเหตุการณ์ "ปลดล็อคการแสดงผล" งานสำหรับเหตุการณ์ "Display Off" จะมีการดำเนินการเดียวในนั้น รหัส -> เรียกใช้เชลล์ด้วยคำสั่ง dumpsys battery set ac 1. งานสำหรับเหตุการณ์ "Display Unlocked" จะมีการดำเนินการเดียวในนั้นคือ Code-->Run Shell ด้วยคำสั่ง dumpsys battery reset. ดังนั้น Tasker จะเรียกใช้คำสั่งเพื่อหลอกอุปกรณ์ของคุณให้คิดว่ากำลังชาร์จในขณะที่หน้าจอปิดอยู่ (โปรไฟล์: เปิดใช้งาน Hotword Detection) และรันคำสั่งเพื่อปิดการใช้งานเคล็ดลับนี้เมื่อโทรศัพท์ถูกปลดล็อค (โปรไฟล์: ปิดการใช้งาน Hotword Detection)

[แท็บ][ชื่อแท็บ ="เปิดใช้งานการตรวจจับคำที่นิยม"]

Profile: Enable Hotword Detection (180)
Event: Display Off
Enter: Anon (182)
A1: Run Shell [ Command: dumpsys battery set ac 1Timeout (Seconds):0Use Root:OnStoreOutputIn: StoreErrorsIn: StoreResultIn: ]

[/tab][ชื่อแท็บ ="ปิดการใช้งานการตรวจจับคำที่นิยม"]

Profile: Disable Hotword Detection (191)
Event: Display Unlocked
Enter: Anon (192)
A1: Run Shell [ Command: dumpsys battery resetTimeout (Seconds):0Use Root:OnStoreOutputIn: StoreErrorsIn: StoreResultIn: ]

[/แท็บ]

[/แท็บ]

ข้อเสียเปรียบ # 2 - เพิ่มการระบายแบตเตอรี่

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

แต่นั่นไม่ใช่กรณีนี้ ดังนั้นการเปิดใช้งานคำสั่งนี้จะส่งผลให้แบตเตอรี่หมดมากขึ้น จากประสบการณ์ของฉันในการทิ้งอุปกรณ์ไว้ในสถานะนี้ข้ามคืน Mate 9 ของฉันหมดแรง แบตเตอรี่ 12% ตลอดระยะเวลา 8 ชั่วโมง.

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


บทสรุป

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

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

ลองใช้เคล็ดลับนี้แล้วแจ้งให้เราทราบในความคิดเห็นด้านล่างหากมันเหมาะกับคุณ!