gpt4 book ai didi

java - 使用 context.getSystemService 找不到 NsdManager

转载 作者:行者123 更新时间:2023-12-01 04:44:07 27 4
gpt4 key购买 nike

我在使用 context.getSystemService(Context.NSD_SERVICE) 时遇到问题。它只是崩溃了。代码如下:

我的网络服务发现助手:

public NetworkServiceDiscoveryHelper(Context context)
{
mContext = context;
mNetworkDiscoveryManager = (NsdManager) context.getSystemService(Context.NSD_SERVICE);
}

我的 Activity 类(class):

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 中的示例代码,他们的 Activity 构造函数略有不同:

@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();

}

有人可以向我解释一下,为什么我的实现不起作用,我需要额外的功能吗?我基本上只是尝试通过创建服务然后使用同一部手机再次找到该服务来设置测试此功能。到目前为止,我只实现了一个网络服务助手和 Activity 。我需要设置任何附加功能吗?

最佳答案

要使用 Wi-Fi Direct,请将 CHANGE_WIFI_STATE、ACCESS_WIFI_STATE 和 INTERNET 权限添加到您的 list 中。

<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"/>

关于java - 使用 context.getSystemService 找不到 NsdManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16104430/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com