我在使用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();
}
有人可以向我解释,为什么我的实施不起作用,我需要额外的功能吗?我基本上只是尝试通过创建服务来设置测试此功能,然后使用相同的手机再次查找该服务。到目前为止,我只实现了一个网络服务助手和活动。我是否需要设置任何其他功能。
答案 0 :(得分:0)
要使用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"/>