如何从 Android 应用程序检测到 PC 连接?
How to detected PC connection from an Android Application?
当我检测到与 linux PC 的连接时,我正在尝试激活 USB 网络共享。
我已经找到了以下意图过滤器:ACTION_POWER_CONNECTED
是否有更具体的 Intent 过滤器来检测启用数据的连接?
如果不是,我如何检测数据连接?
ACTION_POWER_DISCONNECTED 将完成停用网络共享的工作。
谢谢
我不太明白为什么,但检查充电状态似乎可以解决问题。在下面的一段代码中,usbCharge 在简单充电器上为 false,在计算机上为 true。
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);
}
}
当我检测到与 linux PC 的连接时,我正在尝试激活 USB 网络共享。 我已经找到了以下意图过滤器:ACTION_POWER_CONNECTED
是否有更具体的 Intent 过滤器来检测启用数据的连接?
如果不是,我如何检测数据连接?
ACTION_POWER_DISCONNECTED 将完成停用网络共享的工作。
谢谢
我不太明白为什么,但检查充电状态似乎可以解决问题。在下面的一段代码中,usbCharge 在简单充电器上为 false,在计算机上为 true。
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);
}
}