android - 以编程方式获取连接的Powerbank设备信息和Powerbank设备的电池容量

标签 android usb device usb-drive

我正在开发一个应用,当任何移动电源设备使用 USB 连接时需要检测连接。

每当检测到与移动电源的连接时,我需要获取连接的移动电源的品牌名称电池容量制造商等信息设备。

为此,我创建了Broadcast Receiver 来检测 Powerbank 与我的设备的连接。

代码:

public class PowerBankBroadcastReceiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();

        if (action.equals(Intent.ACTION_POWER_CONNECTED)) {
            // Do something when power connected
            Toast.makeText(context, "ACTION_POWER_CONNECTED", Toast.LENGTH_SHORT).show();
        } else if (action.equals(Intent.ACTION_POWER_DISCONNECTED)) {
            // Do something when power disconnected
            Toast.makeText(context, "ACTION_POWER_DISCONNECTED", Toast.LENGTH_SHORT).show();
        }
    }
}

manifest 里面我添加了这个。

<receiver android:name=".utilities.PowerBankBroadcastReceiver">
       <intent-filter>
          <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
          <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
       </intent-filter>
</receiver>

每当我连接和断开 Powerbank 设备时,它都会给我 ACTION_POWER_CONNECTED toast 消息

所以我的问题是:连接时如何获取 Powerbank 设备信息?

我还在 Play store 上评论了一个应用程序 准确显示连接的 Powerbank 设备信息。我想实现同样的事情。

任何帮助将不胜感激。

最佳答案

大多数 Android 移动电源都符合“电池充电”spec只需短接 D+ 和 D- 数据线,即可阻止任何 USB 数据流。

这样,Android 设备就不知道它是连接到移动电源还是只连接到插入墙上 socket 的充电器。

如果没有适当的数据 channel ,您也无法获得品牌名称等信息。

从 OP 链接的应用程序有很多负面评论和评论 - 不要指望它能正常工作。这可能只是一个用于推送广告或加密货币矿工的巧妙假冒。

关于android - 以编程方式获取连接的Powerbank设备信息和Powerbank设备的电池容量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48703179/

相关文章:

java - 我可以使用 Intellij J IDEA 进行 Android 应用程序开发吗?

android - 位置选择器选择器输入小部件

wpf - 为什么计算机进入休眠状态会扰乱我的 WPF 程序以及该怎么办

c - 远程 USB 连接 C

windows - 在 windows xp 上检索详细的 usb midi 设备信息

r - 如何在单独的 jpeg 文件中分页 R 中的多个图?

从可搜索 Activity 中进行 Android 搜索

android - 如何激活三星S Health开发者模式?

Windows 10 - 清除 USB 枚举/驱动程序问题

android - 如何使用三星 Galaxy 5 设备开发 Android 应用程序?