我正在开发一个应用,当任何移动电源设备使用 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/