Как привязатьProcessToNetwork для P2P-сети Wi-Fi?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как привязатьProcessToNetwork для P2P-сети Wi-Fi?

Сообщение Anonymous »

Я использую сеть Wi-Fi P2P на Android для подключения к устройству Интернета вещей. Связь устанавливается постоянно. На устройстве работает DHCP-сервер:

Код: Выделить всё

private class WiFiDirectBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION.equals(action)) {
NetworkInfo networkInfo = intent.getParcelableExtra(WifiP2pManager.EXTRA_NETWORK_INFO);
PRINTF("WiFiDirect WIFI_P2P_CONNECTION_CHANGED_ACTION " + networkInfo.getState());
if (networkInfo.getState() == NetworkInfo.State.CONNECTED) {
mManager.requestConnectionInfo(mChannel, new WifiP2pManager.ConnectionInfoListener() {
@Override
public void onConnectionInfoAvailable(WifiP2pInfo info) {
//This function is reached. The device can be pinged to
//info.groupOwnerAddress.getHostAddress()
}
});
}
}
Я хотел бы привязать процесс к этой P2P-сети. Я добавил обратный вызов сетевого реестра, который вызывается в случае точки доступа (без возможности P2P), но никогда не вызывается для Wi-Fi P2P:

Код: Выделить всё

NetworkRequest nr = new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.addCapability(NetworkCapabilities.NET_CAPABILITY_WIFI_P2P).build();
mConnectivityManager.registerNetworkCallback(nr, new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
super.onAvailable(network);
//This is never being called for P2P
mConnectivityManager.bindProcessToNetwork(network);
}
});
Я что-то упустил?
Иначе, как бы мне удалось «подняться» и получить Сеть из < em>NetworkInfo в WiFiDirectBroadcastReceiver?

Подробнее здесь: https://stackoverflow.com/questions/791 ... 2p-network
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»