我买了一个新的安卓 4.0.3 平板电脑——Micromax Funbook P300 来学习开发安卓应用程序。
我从 Wifi Direct 开始,这样平板电脑就可以用作机器人平台的遥控器。
令我失望的是,股票操作系统在设置菜单中没有提供此功能。
是否可以检查我们是否可以以编程方式启动 wifi direct 功能?
如果没有,有人可以指导一些解决这个问题的教程吗?
谢谢。
WiFi Direct 应受 Android 4.0.3 支持(自 Android API 14 或 Android 4.0 以来一直存在)。由于硬件限制,您的平板电脑可能不支持 WiFi Direct,但我对此表示怀疑。您可能在设置中看不到它,因为平板电脑上运行的自定义 Android 皮肤阻止您看到它,或者 WiFi Direct 设置界面可能直到 Android 4.1 或其他版本才实现。
无论如何,您都可以在代码中轻松地对其进行测试。
首先,将适当的权限放入您的 manifest.xml
http://developer.android.com/training/connect-devices-wireless/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);
}
在我放空的地方,你可以传递一个回调来检查失败。如果可行,请按照Wi-Fi Direct 指南的其余部分创建您的应用程序。
Android SDK 包含一个使用 DirectWiFi 模式的示例应用程序:
使用的 API 本身位于android.net.wifi.p2p
他并不是要一个编码的程序示例,而是一种以编程方式开启技术的方式(即一行代码)。据我所知,没有办法做到这一点。这一切都必须在您的设备设置中完成。虽然某些设备允许打开 Wi-Fi Direct,但其他设备将其视为启用常规 Wi-Fi - 您尝试过吗?您是否检查过 P300 是否支持 Wi-Fi Direct?