Я написал приложения Java и Xamarin, которые рекламируют и обнаруживают P2P-сервисы Wi-Fi, однако теперь я хочу рекламировать те же сервисы из linux дистрибутива без Android.
* 1002. * Я нашел различные linux модули ядра, которые могли бы иметь такую же возможность, и в частности
wpa_supplicant
.
Моя цель - иметь возможность рекламировать ту же услугу, что и один из мои Android приложения рекламируют, но вместо этого делают это из C (идеально) или linux CLI (в конечном счете, я хочу написать собственный модуль ядра Linux, который выполняет ту же цель, что и моя отправка Android приложение).
Есть ли у кого-нибудь какие-либо рекомендации?
Два аспекта данных, которые выполняет приложение Android, - это определение локального домена (например, _test._presence._tcp
) и служебного словаря, Например:
1:Some text
2:More Text
3:Text Map in Android does not exceed 90 characters
Только для контекста, это выдержка из API Android, которая показывает, как служба зарегистрирована в Java, но фактическая реклама осуществляется базовой системой.
Бо регистрация локального домена и карты услуг очевидна:
private void startRegistration() {
// Create a string map containing information about your service.
Map record = new HashMap();
record.put("listenport", String.valueOf(SERVER_PORT));
record.put("buddyname", "John Doe" + (int) (Math.random() * 1000));
record.put("available", "visible");
// Service information. Pass it an instance name, service type
// _protocol._transportlayer , and the map containing
// information other devices will want once they connect to this one.
WifiP2pDnsSdServiceInfo serviceInfo =
WifiP2pDnsSdServiceInfo.newInstance("_test", "_presence._tcp", record);
// Add the local service, sending the service info, network channel,
// and listener that will be used to indicate success or failure of
// the request.
manager.addLocalService(channel, serviceInfo, new ActionListener() {
@Override
public void onSuccess() {
// Command successful! Code isn't necessarily needed here,
// Unless you want to update the UI or add logging statements.
}
@Override
public void onFailure(int arg0) {
// Command failed. Check for P2P_UNSUPPORTED, ERROR, or BUSY
}
});
}
Вышеприведенная выдержка из https://developer.android.com/training/connect-devices-wirelessly/nsd-wifi-direct