2013-04-13 35 views
12

Próbowałem wykonać tak wiele badań, jak to możliwe, ale nie mogę znaleźć odpowiedzi na to dość proste pytanie (chcę to zrozumieć zanim zacznę konfigurować SDK i wszystko). Zastanawiam się nad stworzeniem mojej pierwszej aplikacji i zastanawiam się, czy BATTERY_STATUS_CHARGING z BatteryManager zawiera tylko funkcję get, czy też funkcję set.Jak programowo zablokować ładowanie telefonu przez USB?

Nie chcę tworzyć aplikacji, w której mogę ręcznie zatrzymać ładowanie telefonu bez odłączania go od ładowarki (przez USB) i zastanawiam się, czy to rzeczywiście możliwe.

+0

To mogło odpowiedział na to pytanie: http://stackoverflow.com/questions/ 6654189/how-to-stop-an-android-device-from-being-charged-programme programme – luxer

Odpowiedz

9

Nie, nie jest to możliwe na nieuzdolnionych urządzeniach. Używa ona Settings.System z ADB_ENABLED, ale ADB_ENABLED to ustawienie bezpiecznego systemu, którego nie można zmienić w aplikacji.

Tak, można to zrobić na telefonie zrootowanym.

Nie ma potrzeby, aby dodać pozwolenie android.permission.WRITE_SECURE_SETTINGS.

samego rodzaju aplikacji w Google Play: https://play.google.com/store/apps/details?id=com.jim2&hl=en

2

To nie jest niestety możliwe. Android ma tylko czytane API dla danych baterii. ADB_ENABLED nie pomoże w tym przypadku, ponieważ służy tylko do włączenia debugowania przez USB.

Sterowanie ładowaniem baterii jest wewnętrzne dla modułów IC jądra i baterii systemu Android. Producenci zmieniają go od czasu do czasu, ale nie są dostępne dla aplikacji bez rootowania i bez sterowania modułami IC (Integrated Chip) za pomocą jakiegoś trudnego interfejsu, który byłby inny dla prawie każdego urządzenia!

W najlepszym razie, jeśli nam się poszczęści, może pomóc interfejs Sysfs, ale znowu wymaga to korzenia i może różnić się w zależności od urządzenia.

5

Można podłączyć go przewodowo: 12 omów seryjnie nadal sprawia, że ​​telefon jest rozpoznawany przez komputer, ale powoli się rozładowuje. Zobacz załączony obrazek. microUSB cable plugged into PCB. PCB shows VCC connected to wire via 12Ω resistor, and D-, D+ and GND connected directly to wires. All wires go to cable out of image

1

Znam ten wątek jest stary, ale delegowania moje ans tak czy inaczej ktoś dotarciem tutaj później .. Spróbuj tego: -
echo 0 > /sys/class/power_supply/batterycharging_enabled/charging_enabled

+2

W moim telefonie plik tam był: '/ sys/class/power_supply/battery/battery_charging_enabled' - aktualizacja zawartości tego pliku do 0 zatrzymane ładowanie (na podstawie informacji z AccuBatery i LED). Ale jestem ciekawy, czy to jest bezpieczne. Nie wiem, czy ładowarka naprawdę przestała dostarczać waluty, czy też oprogramowanie "myśli", że nie jest obciążone. – dey