NsdManager не может быть найден с помощью context.getSystemService
У меня проблема с использованием context.getSystemService(Context.NSD_SERVICE). Это просто вылетает. Код ниже:
Мой помощник по обнаружению сетевых служб:
public NetworkServiceDiscoveryHelper(Context context)
{
mContext = context;
mNetworkDiscoveryManager = (NsdManager) context.getSystemService(Context.NSD_SERVICE);
}
Мой класс занятий:
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mNsdHelper = new NetworkServiceDiscoveryHelper(this);
mNsdHelper.initializeNsd();
}
Я следовал примеру кода с http://developer.android.com/training/connect-devices-wirelessly/nsd.html, их конструктор активности немного отличается:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mStatusView = (TextView) findViewById(R.id.status);
mUpdateHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
String chatLine = msg.getData().getString("msg");
addChatLine(chatLine);
}
};
mConnection = new ChatConnection(mUpdateHandler);
mNsdHelper = new NsdHelper(this);
mNsdHelper.initializeNsd();
}
Может кто-нибудь объяснить мне, почему моя реализация не работает, мне нужна дополнительная функциональность? Я просто пытался настроить эту функцию, создав службу, а затем используя тот же телефон, чтобы снова найти эту службу. Я реализовал только вспомогательный сетевой сервис и действия до сих пор. Нужно ли настраивать какие-либо дополнительные функции.
1 ответ
Чтобы использовать Wi-Fi Direct, добавьте разрешения CHANGE_WIFI_STATE, ACCESS_WIFI_STATE и INTERNET к своему манифесту.
<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"/>