2016-01-04 27 views
5

Tôi có điện thoại thông minh được kết nối với bộ sạc năng lượng mặt trời. Theo ngày, nó được cấp nguồn chính xác. Nhưng trong đêm, đôi khi nó tự tắt do thiếu năng lượng.Android: Bật thiết bị theo chương trình

Câu hỏi của tôi là: Có thể bật lại (theo lập trình), khi sạc pin vượt quá một tỷ lệ nhất định? Tôi đang tìm kiếm một cách sạch sẽ và hợp pháp. Tôi không quan tâm đến sai sót hoặc khai thác. Tôi không tìm thấy gì trong tài liệu chính thức. Cảm ơn bạn.

+0

Không có mã người dùng hoặc thậm chí là hệ điều hành đang chạy tại thời điểm đó nên không, điều đó là không thể. –

+2

@SamiKuhmonen - cách hoạt ảnh tính phí hiển thị, sau đó? –

+0

Vấn đề thú vị ... Tôi có một tình huống tương tự mà tôi đang tìm cách giải quyết. Chúng tôi đang thảo luận vấn đề này tại XDA, đây là liên kết: http://forum.xda-developers.com/showthread.php?t=1187631&page=7 – portsample

Trả lời

3

Cơ chế để làm điều này dựa vào thay thế kịch bản phim hoạt hình pin, được điều hành trong khi thiết bị bị tắt nhưng được cắm vào, thường hiển thị biểu tượng pin sạc. Tên của tập lệnh thay đổi từ thiết bị đến thiết bị, nhưng nó thường nằm trong thư mục /system/bin. Các thiết bị Samsung thường gọi tập lệnh playlpm và các tên khác cho tập lệnh mà tôi đã xem bao gồm ipod, lpmbattery_charging. Điều này sẽ không nhất thiết phải hoạt động trên mọi thiết bị, bởi vì điều này nằm ngoài khung công tác Android chuẩn - một số thiết bị có thể không có tập lệnh tương đương hoặc có thể triển khai theo một cách khác.

Điều này có thể được mô tả là "khai thác" ở chỗ nó đòi hỏi gốc và làm việc ở cấp Linux thay vì cấp khung công tác Android, nhưng hiện tại không có cách nào khác để thực hiện hành vi này.

Cơ chế chung để thực hiện thay đổi này được mô tả tại đây: https://android.stackexchange.com/questions/20021/automatically-power-on-android-when-the-charger-is-connected. Tất nhiên, bạn nên sao lưu tập lệnh hoạt ảnh trước của pin trước khi thực hiện bất kỳ thao tác nào trong số này.

Tập lệnh sau đã làm việc cho tôi trên nhiều thiết bị (một số thiết bị Samsung và Verizon Ellipsis 7). Về cơ bản, nó sẽ kiểm tra xem điện thoại đã được cắm vào nguồn AC và có sạc đủ không. Nếu vậy, nó khởi động. Nếu không, nó sẽ đợi N giây và thử lại. Như một tác dụng phụ, kịch bản hoạt hình pin ban đầu sẽ không chạy, và bạn sẽ không bao giờ nhìn thấy hình ảnh động đang sạc.

#!/system/bin/sh                    

# battery threshold before boot-up (in percent)             
bthresh=10 

# time to sleep between checks (in seconds)              
sleeptime=600 

# file that contains current battery level as integer between 0 and 100       
cfi=/sys/class/power_supply/battery/capacity 
# file that contains 1 if we're plugged in to AC, 0 if not          
acfi=/sys/class/power_supply/battery/subsystem/ac/online 

# if either file doesn't exist, just do normal sleep+boot          
[ ! -f $cfi ] && sleep $sleeptime && /system/bin/reboot 
[ ! -f $acfi ] && sleep $sleeptime && /system/bin/reboot 

# populate capacity and AC variables               
c=`cat $cfi` 
ac=`cat $acfi` 

# stop loop if we're not plugged into AC              
until [ "$ac" -eq 0 ] 
do 
    # if capacity above threshold, boot up              
    if [ "$c" -gt "$bthresh" ]; then 
    /system/bin/reboot 
    fi 

    # wait some time before next check               
    sleep $sleeptime 

    # update capacity and AC variables               
    c=`cat $cfi` 
    ac=`cat $acfi` 
done 
1

Không thể nếu không có rễ thiết bị

0

Nếu thiết bị được tắt nguồn, không có cách nào để chạy phần mềm thuộc bất kỳ loại nào trên thiết bị.

+0

OP cho biết "khi mức phí vượt quá một tỷ lệ nhất định" - có nghĩa là là điện –

0

bắt đầu một thiết bị là một nhiệm vụ phần cứng và phải có một sức mạnh vật lý để chạy thiết bị (ở đây với cách nhấn nút nguồn). thì bạn không thể làm điều này bằng mã. nên có sức mạnh thể chất.

+0

OP cho biết "khi sạc pin vượt quá một tỷ lệ nhất định" - có nghĩa là có điện –

-1

Lần cuối cùng tôi kiểm tra quá trình root là "hợp pháp" và bắt buộc phải thực hiện việc này.

Ví dụ: tệp này /system/bin/battery_charging có thể nằm trên thiết bị của bạn. Chỉnh sửa nó để chứa

#!/system/bin/sh 
/system/bin/reboot 

Và thiết lập một số điều khoản

chmod 0755/system/bin/battery_charging 
chown root.shell /system/bin/battery_charging 

Taken từ đây: https://android.stackexchange.com/questions/20021/automatically-power-on-android-when-the-charger-is-connected

2

Tôi không có giải pháp không phụ thuộc phần cứng và không liên quan đến việc khởi động thiết bị.

Câu trả lời này chỉ nhằm làm rõ một số hiểu lầm.

"điện thoại được tắt nguồn, không có cách nào để chạy phần mềm của bất kỳ loại trên đó"

Đây là vừa đúng vừa sai. Thứ nhất, không có thiết bị hiện đại nào thực sự "tắt". Đôi khi, nút tắt chỉ đơn thuần là hiển thị (ví dụ: TV của bạn). Đôi khi bộ xử lý thực sự bị tắt nguồn nhưng mạch bổ sung trên bo mạch chủ vẫn được cấp nguồn ở dòng chảy nhỏ giọt. Thứ hai, mạch bổ sung này có thể cấp nguồn cho bộ vi xử lý và các mạch khác trong một số trường hợp nhất định, chẳng hạn như đánh thức một số sự kiện bên ngoài (ví dụ: cắm dây sạc) hoặc khi bộ hẹn giờ tắt bộ xử lý đạt đến 0.

Cách duy nhất để thực sự tắt nguồn thiết bị hiện đại, chẳng hạn như điện thoại thông minh, là tháo pin và dây nguồn. Và thậm chí đôi khi không hoạt động như một pin nhỏ hoặc tụ điện rò rỉ thấp có thể nằm trên bo mạch chủ để bảo vệ một số trạng thái hoạt động.

Các vấn đề liên quan