ป้องกัน NetD จากการทำลายซ็อกเก็ตเมื่ออุปกรณ์ Android ไม่ได้ชาร์จไฟ
ผู้ใช้ Android Marshmallow และ Nougat บางครั้งรายงานว่า Netd จะทำลายซ็อกเก็ตเมื่ออุปกรณ์ของพวกเขาไม่ได้ชาร์จไฟ บ่อยครั้ง Logcat จะแสดงบางอย่างเช่นนี้:
06-23 12: 38: 17.576 522 2676 I Netd: ทำลาย 3 ซ็อกเก็ตสำหรับ UidRanges {10000-2147483647} skip = (1001 1027 10010 10013 10018 10021 10035 10037 10064 10081} ใน 1.2 มิลลิวินาที
นี้เป็นจริงอย่างไม่น่าเชื่อง่ายในการแก้ไขดังนั้นง่ายในความเป็นจริงว่ามันตกอยู่ภายใต้การ ไม่ตั้งใจคนตาบอด - การแก้ไขปัญหาวิธีการในขณะที่ขาดหายไปบางอย่างในสายตาธรรมดา ความจริงก็คือผู้ร้ายผิดปัญหานี้คือคุณลักษณะ Android Doze ที่เปิดตัวใน Marshmallow 6.0 และได้รับการปรับปรุงใน Nougat
โหมด Doze จะเปิดใช้งานเมื่ออุปกรณ์ไม่มีการแตะต้องเป็นระยะเวลาหนึ่ง เมื่อ Doze เปิดใช้งานอุปกรณ์ของคุณจะทำสิ่งต่อไปนี้:
- การเข้าถึงเครือข่ายถูกระงับ
- ระบบละเว้นการล็อคระบบเสียงปลุก
- การเตือน AlarmManager มาตรฐาน (รวมทั้ง setExact () และ setWindow ()) จะถูกเลื่อนไปยังหน้าต่างการบำรุงรักษาครั้งต่อไป
- ถ้าคุณต้องการตั้งค่าสัญญาณเตือนที่ไฟในขณะอยู่ใน Doze ให้ใช้ setAndAllowWhileIdle () หรือ setExactAndAngelWhileIdle ()
- สัญญาณเตือนที่ตั้งด้วย setAlarmClock () จะยังคงดับไฟต่อไปตามปกติ - ระบบจะออกจาก Doze ก่อนที่ไฟเตือนจะดับลง
- ระบบไม่ทำการสแกน Wi-Fi
- ระบบไม่อนุญาตให้ซิงค์อะแดปเตอร์ทำงาน
- ระบบไม่อนุญาตให้ JobScheduler ทำงาน
ดังนั้นที่นี่คุณมีสองตัวเลือก:
ตัวเลือกที่ 1: ปรับปพลิเคชันของคุณให้เป็น Doze ผ่านทางรายการที่อนุญาตพิเศษ
คุณสามารถกำหนดค่ารายการที่อนุญาตพิเศษด้วยตัวเองได้ใน การตั้งค่า> แบตเตอรี่> การเพิ่มประสิทธิภาพแบตเตอรี่ หรืออีกวิธีหนึ่งคือระบบจะให้วิธีการที่แอปจะขอให้ผู้ใช้อนุญาตให้ใช้งานได้
แอปพลิเคชันสามารถกระตุ้นความตั้งใจ ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS เพื่อนำผู้ใช้ไปยัง Battery Optimization โดยตรงเพื่อให้ผู้ใช้สามารถเพิ่มแอปได้
แอปที่ถือสิทธิ์ REQUEST_IGNORE_BATTERY_OPTIMIZATIONS สามารถทริกเกอร์โต้ตอบระบบเพื่อให้ผู้ใช้สามารถเพิ่มแอปลงในรายการที่อนุญาตได้โดยตรงโดยไม่ต้องไปที่การตั้งค่า แอปพลิเคชันจะเริ่ม ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS เจตนาในการเรียกใช้โต้ตอบ
ตัวเลือกที่ 2: ปิดใช้งาน Doze บนอุปกรณ์ของคุณโดยสมบูรณ์ - ไม่แนะนำ แต่เป็นโทรศัพท์ของคุณ
ดาวน์โหลดแอป Doze Settings Editor ลงในอุปกรณ์ของคุณเปิดใช้งานและตั้งค่าพารามิเตอร์ต่อไปนี้:
PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่- dumpsys อุปกรณ์ปิดการใช้งาน
- idle_to 1
- max_idle_to 1
คำอธิบายที่สมบูรณ์ของพารามิเตอร์ตัวแก้ไขการตั้งค่า Doze:
หมดเวลาที่ไม่ใช้งาน - ไม่ได้ใช้งาน
นี่คือเวลาหลังจากที่ไม่ได้ใช้งานซึ่งเราเริ่มมองไปที่เซ็นเซอร์ตรวจจับเพื่อตรวจสอบว่าอุปกรณ์เหลืออยู่เพียงลำพังหรือไม่ เราไม่ทำแบบนี้ทันทีหลังจากไม่ได้ใช้งานเพียงเพราะเราไม่ต้องการที่จะใช้เซ็นเซอร์ตรวจจับที่สำคัญอย่างต่อเนื่องตลอดเวลาที่หน้าจอปิดอยู่
หมดเวลาการรับรู้ - sensing_to
ถ้าเราไม่ได้รับการโทรกลับจาก AnyMotion ในระยะเวลา + locating_to นี้เราจะเปลี่ยนจาก STATE_SENSING เป็น STATE_INACTIVE และการเรียกกลับใด ๆ ของ AnyMotion ในขณะที่ไม่อยู่ใน STATE_SENSING จะถูกละเว้น
การค้นหา Timeout - locating_to
นี่คือระยะเวลาที่เราจะรอเพื่อลองรับการแก้ไขตำแหน่งที่ดีก่อนเข้าสู่โหมดว่าง
ตำแหน่งความถูกต้อง - location_accuracy
ความถูกต้องสูงสุดที่ต้องการ (เป็นเมตร) เราพิจารณาว่าสถานที่นั้นดีพอที่จะไม่ใช้งาน เราจะพยายามแก้ไขค่าความถูกต้องอย่างน้อยนี้หรือจนกว่า locating_to จะหมดอายุลง
ช่วงหมดเวลาที่ไม่ได้ใช้งาน Motion - motion_inactive_to
นี่เป็นเวลาหลังจากได้เห็นการเคลื่อนไหวแล้วเรารอหลังจากไม่ได้ใช้งานจนกว่าจะเริ่มมองหาการเคลื่อนไหวอีกครั้ง
ไม่ทำงานหลังจากหมดเวลาที่ไม่ได้ใช้งาน - idle_after_inactive_to
นี่คือเวลาหลังจากหมดเวลาที่ไม่ได้ใช้งานไปแล้วเราจะรอการเคลื่อนไหวที่สำคัญจนกว่าเราจะพิจารณาอุปกรณ์ว่าไม่ได้ใช้งานอย่างแท้จริง
ช่วงหมดเวลาที่รอดำเนินการไม่ได้ใช้งาน - idle_pending_to
นี่เป็นครั้งแรกหลังจากไม่ได้ใช้งานเราจะอนุญาตให้เรากลับมาอยู่ในสถานะ IDLE_PENDING เพื่อให้ระบบทำงานได้ตามปกติจนกว่าเราจะกลับสู่สภาวะว่าง
ช่วงหมดเวลาที่รอดำเนินการไม่ได้ใช้งานสูงสุด - max_idle_pending_to
ระยะหมดเวลาที่ไม่ได้ใช้งานสูงสุดที่รอดำเนินการ (เวลาที่ใช้ไป) เราจะได้รับอนุญาตให้ใช้
Idle Pending Factor - idle_pending_factor
ปัจจัยการกำหนดขนาดเพื่อใช้กับการหมดเวลาที่ไม่ได้ใช้งานปัจจุบันที่รอดำเนินการทุกครั้งที่เราหมุนเวียนผ่านสถานะดังกล่าว
ช่วงหมดเวลาใช้งาน - idle_to
นี่เป็นครั้งแรกที่เราต้องการนั่งอยู่ในสถานะที่ไม่ได้ใช้งานก่อนที่จะตื่นขึ้นมาอีกครั้งเพื่อกลับไปทำงานที่ไม่ได้ใช้งานและปล่อยให้ทำงานตามปกติ
ช่วงหมดเวลาใช้งานไม่ได้สูงสุด - max_idle_to
ระยะเวลาไม่ได้ใช้งานสูงสุดที่เราจะได้รับอนุญาตให้ใช้
Idle Factor - idle_factor
ปัจจัยการกำหนดขนาดเพื่อใช้กับการหมดเวลาปัจจุบันที่ไม่ได้ใช้งานในแต่ละครั้งที่เราหมุนเวียนผ่านสถานะดังกล่าว
เวลาปลุกสุด - min_time_to_alarm
นี่คือเวลาต่ำสุดที่เราจะอนุญาตจนกว่าจะมีการเตือนภัยที่จะเกิดขึ้นต่อไปเพื่อให้เราสามารถเข้าสู่โหมดไม่ได้ใช้งานได้
ระยะเวลา Whitelist ของแอปพลิเคชันสูงสุดของ Max Temp - max_temp_app_whitelist_duration
ระยะเวลาสูงสุดในการอนุญาตแอปพลิเคชันชั่วคราวเมื่อได้รับสัญลักษณ์ที่สูงขึ้นชั่วคราว
ระยะเวลารายการที่อนุญาตพิเศษของ MMS Temp Whitelist - mms_temp_app_whitelist_duration
ระยะเวลาที่เราต้องการอนุญาตให้แอปที่ได้รับ MMS
ระยะเวลารายการที่อนุญาตพิเศษของ SMS Temp - sms_temp_app_whitelist_duration
ระยะเวลาที่เราต้องการอนุญาตให้แอปที่ได้รับ SMS
PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่