gpt4 book ai didi

android-wifi - 我可以从代码中打开 WiFi-Direct 吗?在 Android API-14 (ICS) 上

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:23:56 24 4
gpt4 key购买 nike

我在 Android 4.0 上使用来自谷歌的新 Wi-Fi Direct API在示例代码中,他们将用户发送到设置,以激活 WiFi - 直接模式。

有没有办法通过代码启动它???

他们提供的只是监听 WIFI_P2P_STATE_CHANGED_ACTION Intent ,然后使用此代码

String action = intent.getAction();

if (WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action)) {

// UI update to indicate wifi p2p status.
int state = intent.getIntExtra(WifiP2pManager.EXTRA_WIFI_STATE, -1);

if (state == WifiP2pManager.WIFI_P2P_STATE_ENABLED) {
// Wifi Direct mode is enabled

} else {
// Wifi Direct mode is disabled
}

最佳答案

是的,有一种使用反射的方法。在我的 GSII 上工作(在非 Wifi Direct HTC Sensation 上优雅地失败)但由于这是反射,它可能不适用于所有手机。

p2pManager = (WifiP2pManager) getSystemService(WIFI_P2P_SERVICE);
channel = p2pManager.initialize(getApplicationContext(),
getMainLooper(), null);

try {
Class<?> wifiManager = Class
.forName("android.net.wifi.p2p.WifiP2pManager");

Method method = wifiManager
.getMethod(
"enableP2p",
new Class[] { android.net.wifi.p2p.WifiP2pManager.Channel.class });

method.invoke(p2pManager, channel);

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

请注意:

在 Jelly Bean 及更高版本上,当您尝试使用 WifiP2pManager API 时,WiFi-Direct 会自动启用(只要 WiFi 处于打开状态),因此无需使用此 hack。

关于android-wifi - 我可以从代码中打开 WiFi-Direct 吗?在 Android API-14 (ICS) 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8571566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com