我已经买了一台新的Android 4.0.3平板电脑 - Micromax Funbook P300来学习开发Android应用程序。
我开始使用Wifi Direct,这样平板电脑就可以用作机器人平台的遥控器。
令我失望的是,库存操作系统不会在设置菜单中提供此功能。
是否有可能检查我们是否可以以编程方式启动wifi直接功能?
如果没有,有人可以直接找到解决这个问题的教程吗?
感谢。
答案 0 :(得分:0)
Android SDK包含使用DirectWiFi模式的示例应用程序:
WiFiDirectDemo - Wi-Fi Direct Demo
使用的API本身位于android.net.wifi.p2p
答案 1 :(得分:0)
Android 4.0.3应支持WiFi Direct(自Android API 14或Android 4.0以来一直存在)。由于硬件限制,您的平板电脑可能不支持WiFi Direct,但我对此表示怀疑。您可能无法在设置中看到它,因为平板电脑上运行的自定义Android皮肤会阻止您看到它,或者可能在Android 4.1或其他东西之前未实现WiFi Direct设置界面。 / p>
无论如何,您都可以在代码中轻松测试。
首先,在manifest.xml中放入适当的权限
http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html#permissions
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.nsdchat"
...
<uses-permission
android:required="true"
android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission
android:required="true"
android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission
android:required="true"
android:name="android.permission.INTERNET"/>
...
接下来,尝试初始化Android WiFiP2pManager类以查看它是否受支持。
http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html
public void onCreate(Bundle savedInstanceState) {
WifiP2pManager manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
WifiP2pManager.Channel channel = manager.initialize(this, getMainLooper(), null);
}
在我放置null的地方,你可以通过回调来检查失败。如果有效,请按照Wi-Fi Direct guide的其余部分创建您的应用。
答案 2 :(得分:-2)
他不是要求编码程序示例,而是要求以编程方式切换技术(即一行代码)。据我所知,没有办法做到这一点。这一切都必须在您的设备设置中完成。虽然有些设备允许打开Wi-Fi Direct,但其他设备的处理方式与启用常规Wi-Fi相同 - 您试过这个吗?你有没有检查过P300是否支持Wi-Fi Direct?