如何从Android应用程序检测到PC连接?

时间:2017-03-14 17:01:05

标签: android android-intent usb android-service android-usb

当我检测到与linux PC的连接时,我正在尝试激活USB网络共享。 我已经找到了以下intent过滤器:ACTION_POWER_CONNECTED

是否有更具体的Intent过滤器来检测启用数据的连接?

如果不能如何检测数据连接?

ACTION_POWER_DISCONNECTED将执行作业以取消激活网络共享。

谢谢

1 个答案:

答案 0 :(得分:0)

我真的不明白为什么,但检查充电状态似乎可以完成这项工作。在下面的代码中,usbCharge在简单的充电器上是错误的,在计算机上是真的。

public void onReceive(final Context context, Intent intent) {
    IntentFilter extraFilterToGetBatteryInfo = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
    Intent extraIntentToGetBatteryInfo = context.getApplicationContext().registerReceiver(null, extraFilterToGetBatteryInfo);

    int chargePlug = extraIntentToGetBatteryInfo.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
    boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;

    if (usbCharge) {
        // Enable tethering
        Intent tetherSettings = new Intent();
        tetherSettings.setClassName("com.android.settings", "com.android.settings.TetherSettings");
        tetherSettings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(tetherSettings);
    }
}