Я пытался создать точку доступа WiFi с помощью WiFi Direct в Android. После поиска в Google и на форуме разработчиков Android я обнаружил, что это можно сделать с помощью WifiP2pManager
. Мне удалось создать группу и сгенерировать ее учетные данные с помощью следующего кода:
WifiManager wifi =(WifiManager) getApplicationContext().getSystemService("wifi");
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
intentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
intentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
intentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);
WifiP2pManager manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
static Channel channel = manager.initialize(this, getMainLooper(), this);
registerReceiver(p2pRecv, intentFilter);
manager.createGroup(channel, null);
manager.requestGroupInfo(channel, new GroupInfoListener() {
@Override
public void onGroupInfoAvailable(WifiP2pGroup group) {
if (group != null && group.isGroupOwner()) {
String groupName = group.getNetworkName();
String groupPassword = group.getPassphrase();
txtHotspotName.setText(groupName + "|||" + groupPassword);
}
}
});
После создания учетных данных любое устройство поблизости может подключиться с использованием этих учетных данных, но после подключения inte rnet не не работает на подключенном устройстве, даже если WiFi подключен к устройству владельца группы. Есть ли способ заставить inte rnet работать на подключенных устройствах?