Google อาจรับสัญญาณจาก iOS โดยเปลี่ยนเมนูพลังงานใน Android 11 ให้เป็นศูนย์ควบคุมสำหรับทางลัดระบบอัตโนมัติในบ้านที่คุณชื่นชอบ
อัปเดต 2 (20/2/2020 @ 19:00 น. EST): Kieron Quinn ส่งภาพหน้าจอที่แสดงหลักฐานที่แน่ชัดว่า Controls API นี้มีวัตถุประสงค์เพื่อแสดงการควบคุมอัตโนมัติในบ้านในเมนูเปิด/ปิดของ Android 11
อัปเดต 1 (20/2/2020 @ 17:30 น. EST): เราค้นพบหลักฐานที่อาจอธิบายได้ว่าเหตุใด Google จึงพัฒนาฟีเจอร์นี้: ช่วยให้เข้าถึงระบบควบคุมอัตโนมัติในบ้านได้อย่างรวดเร็ว! ข้อมูลเพิ่มเติมด้านล่าง บทความต้นฉบับดังต่อไปนี้
เมื่อ Google เปิดตัว Android 11 Developer Preview 1 เมื่อวานนี้ เราก็พบว่า การเปลี่ยนแปลงระดับพื้นผิวเป็นส่วนใหญ่ ในการลงมือปฏิบัติจริงครั้งแรกของเรา ดูเหมือนว่า Google จะทิ้งการเปลี่ยนแปลงส่วนติดต่อผู้ใช้และคุณลักษณะใหม่ๆ จำนวนมากไว้อีกครั้งหนึ่ง เบต้าสาธารณะ หลังจากประกาศ ที่ Google I/O 2020. อย่างไรก็ตาม เราค้นพบการปรับแต่งอินเทอร์เฟซผู้ใช้ที่อยู่ระหว่างการพัฒนาหลายประการ ซึ่งบ่งชี้ถึงการเปลี่ยนแปลงครั้งใหญ่ที่จะเกิดขึ้นกับระบบปฏิบัติการ Android ในปี 2020 เราค้นพบว่า Google อาจใส่
เครื่องเล่นสื่อในแผงการตั้งค่าด่วน, แยกหน้าต่างแจ้งเตือน จากแผงการตั้งค่าด่วน และตอนนี้เราพบว่า Google อาจปรับแต่งเมนูพลังงานเพื่อรองรับทางลัดระบบอัตโนมัติในบ้านที่ผู้ใช้เลือกใน Pixel 2 XL ของฉันที่ใช้ Android 11 DP1 ฉันสามารถเปิดใช้งาน UI ใหม่สำหรับเมนูเปิดปิดแบบกดแบบยาวดังที่แสดงด้านล่าง ไอคอนเมนูพลังงานที่มีอยู่ ได้แก่ เหตุฉุกเฉิน ภาพหน้าจอ รีสตาร์ท และปิดเครื่อง จะเลื่อนไปที่ด้านบนของหน้าจอ ทำให้เหลือพื้นที่ว่างมากมายอยู่ข้างใต้ นอกจากนี้ ข้อความ "หน้าแรก" ใหม่จะปรากฏเหนือไอคอน ไอคอนที่เลื่อนขึ้นแสดงว่า Google วางแผนที่จะเพิ่ม บางสิ่งบางอย่าง เพื่อเติมเต็มพื้นที่ว่างซึ่งตอนแรกเราถือว่ากำลังเตรียมการอยู่ คุณสมบัติ Quick Access Wallet ใหม่ ตอนนี้อยู่ใน Android 11 อย่างไรก็ตาม การปรากฏข้อความ "หน้าแรก" ทำให้เกิดคำถามว่าเหตุใดจึงมีข้อความดังกล่าว Google อาจอยู่ในกระบวนการสร้างหมวดหมู่ในเมนูพลังงานสำหรับการดำเนินการประเภทต่างๆ หรือไม่
จากการเจาะลึกโค้ด เราค้นพบคลาสหลายคลาสใน SystemUIGoogle ที่เกี่ยวข้องกับฟีเจอร์ที่เรียกว่า "การควบคุม" รหัสแนะนำว่าผู้ใช้สามารถ ตั้งค่าทางลัดเป็น "รายการโปรด" เพื่อแสดงในเมนูนี้ซึ่งระบบจัดเก็บไว้ในไฟล์ XML พร้อมด้วย ID ของทางลัด ชื่อ ประเภทและ ส่วนประกอบ มีกิจกรรมใหม่ใน SystemUIGoogle ที่เกี่ยวข้องกับการควบคุม: ControlsFavoritingActivity และ ControlsProviderSelectorActivity การเปิดตัวแบบแรกทำให้เกิดการปฏิเสธสิทธิ์เนื่องจากเป็นกิจกรรมที่ไม่ได้ส่งออก และเราไม่มีสิทธิ์เข้าถึงรูทในขณะที่การเปิดตัวแบบหลังจะแสดง UI ต่อไปนี้:
ขออภัย ขณะนี้ UI นี้ว่างเปล่า ดังนั้นเราจึงไม่สามารถเพิ่มทางลัดที่เราชื่นชอบลงในเมนูเปิด/ปิดได้ เราพบการอ้างอิงถึงการอนุญาตใหม่ที่เรียกว่า "android.permission BIND_CONTROLS" และบริการใหม่ที่เรียกว่า "android.service.controls ControlsProviderService" ที่แนะนำว่าแอปพลิเคชันบุคคลที่สามจะสามารถสร้างไฟล์ บริการ "การควบคุม" ที่ระบบ Android สามารถเชื่อมโยงและแสดงในรายการนี้ได้ เช่นเดียวกับ Quick ไทล์การตั้งค่า ไม่มีแอปพลิเคชันบุคคลที่สามที่รองรับ API "การควบคุม" จะอธิบายได้ว่าเหตุใดกิจกรรมที่แสดงด้านบนจึงว่างเปล่าในขณะนี้
ดูเหมือนว่า Google กำลังรับข้อมูลจากศูนย์ควบคุม iOS ที่นี่ แม้ว่าเราจะไม่แน่ใจว่าทำไม Google ถึงดำเนินการนี้ คุณลักษณะนี้ตั้งแต่แรกเนื่องจากมีแผงการตั้งค่าด่วนอยู่แล้วและสามารถเติมด้วยแบบกำหนดเองได้ ทางลัด เราจะติดตามการพัฒนาฟีเจอร์นี้ในกรณีที่มีการเปลี่ยนแปลงใดๆ ในตัวอย่าง Android 11 สำหรับนักพัฒนาซอฟต์แวร์ในอนาคต
ข่าว Android 11 บน XDA
อัปเดต 1: อาจเป็นไปได้สำหรับการควบคุมระบบอัตโนมัติในบ้าน
หลังจากการเผยแพร่บทความนี้ XDA Recognized Developer Quinny899 ได้ติดต่อมาเพื่อแจ้งให้เราทราบถึงการค้นพบของเขาเอง Framework.jar ที่อัปเดตใน Android 11 เผยให้เห็นว่าทางลัดประเภทใดที่อาจปรากฏในเมนู "การควบคุม" ในเมนูเปิด/ปิด เขาค้นพบรายการประเภทอุปกรณ์ที่ได้รับการยอมรับว่าเป็น "ประเภทอุปกรณ์ที่ถูกต้อง" ในบริการการควบคุม นี่คือรายการทั้งหมด:
ประเภทอุปกรณ์ระบบอัตโนมัติในบ้านที่รองรับสำหรับ Android 11 Controls API
privatestaticfinalint NUM_CONCRETE_TYPES = 51;
privatestaticfinalint NUM_GENERIC_TYPES = 7;
publicstaticfinalint TYPE_AC_HEATER = 1;
publicstaticfinalint TYPE_AC_UNIT = 2;
publicstaticfinalint TYPE_AIR_FRESHENER = 3;
publicstaticfinalint TYPE_AIR_PURIFIER = 4;
publicstaticfinalint TYPE_AWNING = 33;
publicstaticfinalint TYPE_BLINDS = 34;
publicstaticfinalint TYPE_CAMERA = 50;
publicstaticfinalint TYPE_CLOSET = 35;
publicstaticfinalint TYPE_COFFEE_MAKER = 5;
publicstaticfinalint TYPE_CURTAIN = 36;
publicstaticfinalint TYPE_DEHUMIDIFIER = 6;
publicstaticfinalint TYPE_DISHWASHER = 24;
publicstaticfinalint TYPE_DISPLAY = 7;
publicstaticfinalint TYPE_DOOR = 37;
publicstaticfinalint TYPE_DOORBELL = 51;
publicstaticfinalint TYPE_DRAWER = 38;
publicstaticfinalint TYPE_DRYER = 25;
publicstaticfinalint TYPE_FAN = 8;
publicstaticfinalint TYPE_GARAGE = 39;
publicstaticfinalint TYPE_GATE = 40;
publicstaticfinalint TYPE_GENERIC_ARM_DISARM = -5;
publicstaticfinalint TYPE_GENERIC_LOCK_UNLOCK = -4;
publicstaticfinalint TYPE_GENERIC_ON_OFF = -1;
publicstaticfinalint TYPE_GENERIC_OPEN_CLOSE = -3;
publicstaticfinalint TYPE_GENERIC_START_STOP = -2;
publicstaticfinalint TYPE_GENERIC_TEMP_SETTING = -6;
publicstaticfinalint TYPE_GENERIC_VIEWSTREAM = -7;
publicstaticfinalint TYPE_HEATER = 0x2F;
publicstaticfinalint TYPE_HOOD = 10;
publicstaticfinalint TYPE_HUMIDIFIER = 11;
publicstaticfinalint TYPE_KETTLE = 12;
publicstaticfinalint TYPE_LIGHT = 13;
publicstaticfinalint TYPE_LOCK = 45;
publicstaticfinalint TYPE_MICROWAVE = 14;
publicstaticfinalint TYPE_MOP = 26;
publicstaticfinalint TYPE_MOWER = 27;
publicstaticfinalint TYPE_MULTICOOKER = 28;
publicstaticfinalint TYPE_OUTLET = 15;
publicstaticfinalint TYPE_PERGOLA = 41;
publicstaticfinalint TYPE_RADIATOR = 16;
publicstaticfinalint TYPE_REFRIGERATOR = 0x30;
publicstaticfinalint TYPE_REMOTE_CONTROL = 17;
publicstaticfinalint TYPE_SECURITY_SYSTEM = 46;
publicstaticfinalint TYPE_SET_TOP = 18;
publicstaticfinalint TYPE_SHOWER = 29;
publicstaticfinalint TYPE_SHUTTER = 42;
publicstaticfinalint TYPE_SPRINKLER = 30;
publicstaticfinalint TYPE_STANDMIXER = 19;
publicstaticfinalint TYPE_STYLER = 20;
publicstaticfinalint TYPE_SWITCH = 21;
publicstaticfinalint TYPE_THERMOSTAT = 49;
publicstaticfinalint TYPE_TV = 22;
publicstaticfinalint TYPE_UNKNOWN = 0;
publicstaticfinalint TYPE_VACUUM = 0x20;
publicstaticfinalint TYPE_VALVE = 44;
publicstaticfinalint TYPE_WASHER = 0x1F;
publicstaticfinalint TYPE_WATER_HEATER = 23;
publicstaticfinalint TYPE_WINDOW = 43;
อ่านเพิ่มเติม
เป็นไปได้ที่ Google จะอนุญาตให้คุณควบคุมเครื่องใช้ในบ้านอัจฉริยะของคุณผ่านเมนูพลังงานใน Android 11 คำอธิบายนี้สมเหตุสมผลในบริบทของข้อความ "บ้าน" ที่ปรากฏด้านบน เราจะอัปเดตให้คุณทราบหากเราเรียนรู้เพิ่มเติมเกี่ยวกับคุณลักษณะนี้ หรือหากเราจัดการเพื่อให้ทางลัดของเราเองปรากฏในเมนู
อัปเดต 2: ผู้ให้บริการควบคุมถูกแฮ็กเพื่อแสดงแอป "Lightbulb" ที่กำหนดเอง
นี่คือภาพหน้าจอที่จัดทำโดยนักพัฒนา Kieron Quinn ซึ่งแสดงแอป "Lightbulb" สั้นๆ ที่เขารวบรวมและจัดการเพื่อแสดงในกิจกรรม "ผู้ให้บริการการควบคุม" ใน Android 11 การแตะที่ไอคอนจะทำให้ระบบล่ม เราจะอัปเดตโพสต์นี้หากเราจัดการเพื่อให้มันทำงานได้มากกว่านี้