web-dev-qa-db-ja.com

プログラムで電話によるUSB経由の充電を停止する方法

私はできる限り多くの調査を試みましたが、このかなり単純な質問に対する答えを見つけることができません(SDKとすべてをセットアップする前にこれを理解したいと思います)。最初のアプリで、BatteryManagerBATTERY_STATUS_CHARGINGget関数のみが含まれているのか、それともset関数も含まれているのか疑問に思っています。

(USB経由で)充電器からプラグを抜かずに手動で電話の充電を停止できるアプリを作成したくないので、これが実際に可能かどうか疑問に思っています。

13
Masi

いいえ、ルート化されていないデバイスでは不可能です。それは使用しています Settings.SystemADB_ENABLED、 だが ADB_ENABLEDは、アプリケーションで変更できないセキュアシステム設定です。

はい、それは根ざした電話で行うことができます。

権限を追加する必要がありますAndroid.permission.WRITE_SECURE_SETTINGS.

Google Playの同じタイプのアプリケーション: https://play.google.com/store/apps/details?id=com.jim2&hl=en

9
Ajay S

あなたはそれを配線することができます:シリアルで12オームはまだ電話をコンピューターに認識させますが、ゆっくりと放電します。添付の画像を参照してください。 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

7
Johnny

私はこのスレッドが古いことを知っていますが、後でここに到達する誰かのためにとにかく私のansを投稿します。これを試してください:-
echo 0 > /sys/class/power_supply/batterycharging_enabled/charging_enabled

5
Zakir

これは残念ながら不可能です。 Androidには、バッテリーデータの読み取りAPIのみがあります。ADB_EN​​ABLEDは、USB経由のデバッグを有効にするためだけなので、このインスタンスでも役立ちません。

バッテリー充電制御は、Androidカーネルお​​よびバッテリーICモジュールの内部にあります。メーカーは随時それを変更しますが、ルートやIC(統合チップ)モジュールを制御しないアプリでは利用できません。ほとんどすべてのデバイスで実際に異なるいくつかのトリッキーなインターフェースを介して!

せいぜい、運が良ければ、sysfsインターフェイスがそれを助けるかもしれませんが、やはりrootが必要で、デバイスごとに異なる場合があります。

2
3c71

以下のコマンドを使用して、USBに接続したときにモバイル/ハンドヘルドの充電を停止します。

adb Shell dumpsysバッテリーセットac 0; dumpsysバッテリーセットusb 0;

1
tejaswini teju