teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

削除の修正

2017/11/28 05:09

投稿

komon4242
komon4242

スコア21

title CHANGED
File without changes
body CHANGED
@@ -1,1 +1,131 @@
1
- 内容は削除されした
1
+ 表題件のついて質問があり
2
+ NsdManagerを使用してDNS検索を5秒間行う機能を実装しました。
3
+ discoverServicesを実行中に再度discoverServicesを行うと
4
+
5
+ `java.lang.IllegalArgumentException: listener already in use at android.net.nsd.NsdManager.resolveService`が発生します。
6
+ discoverServicesが起動中かどうかを調べる方法を教えてください。
7
+
8
+ ```java
9
+ public class DiscActivity extends Activity
10
+ {
11
+ private static final String TAG = "DiscActivity";
12
+ private static final long DEFAULT_TIMEOUT = 5000;
13
+
14
+ private NsdManager mManager;
15
+ private NsdManager.DiscoveryListener mDiscListener = null;
16
+ private NsdManager.ResolveListener mFoundResListener = null;
17
+ private NsdManager.ResolveListener mLostResListener = null;
18
+
19
+ @Override
20
+ protected void onCreate(Bundle savedInstanceState)
21
+ {
22
+ super.onCreate(savedInstanceState);
23
+ setContentView(R.layout.activity_disc);
24
+
25
+ mContext = this;
26
+ mAdapter = new ServiceAdapter();
27
+
28
+ mManager = (NsdManager) mContext.getSystemService(Context.NSD_SERVICE);
29
+
30
+ mDiscListener = new NsdManager.DiscoveryListener()
31
+ {
32
+ String mService;
33
+
34
+ @Override
35
+ public void onDiscoveryStarted(String serviceType)
36
+ {
37
+ Log.v(TAG, "Service started for protocol: " + serviceType);
38
+ }
39
+
40
+ @Override
41
+ public void onDiscoveryStopped(String serviceType)
42
+ {
43
+ Log.v(TAG, "Service stopped for protocol: " + serviceType);
44
+ }
45
+
46
+ @Override
47
+ public void onServiceFound(NsdServiceInfo info)
48
+ {
49
+ Log.v(TAG, "Found service: " + info.getServiceName());
50
+ mManager.resolveService(info, mFoundResListener);
51
+ }
52
+
53
+ @Override
54
+ public void onServiceLost(NsdServiceInfo info)
55
+ {
56
+ Log.v(TAG, "Lost service: " + info.getServiceName());
57
+ mManager.resolveService(info, mLostResListener);
58
+ }
59
+
60
+ @Override
61
+ public void onStartDiscoveryFailed(String serviceType, int err)
62
+ {
63
+ mService = serviceType;
64
+ Log.v(TAG, "Service failed to start for protocol: " + serviceType + ", Err: " + err);
65
+ }
66
+
67
+ @Override
68
+ public void onStopDiscoveryFailed(String serviceType, int err)
69
+ {
70
+ mService = serviceType;
71
+
72
+ Log.v(TAG, "Service failed to stop for protocol: " + serviceType + ", Err: " + err);
73
+ }
74
+
75
+ };
76
+
77
+ mFoundResListener = new NsdManager.ResolveListener()
78
+ {
79
+ @Override
80
+ public void onServiceResolved(NsdServiceInfo info)
81
+ {
82
+ Log.v(TAG, "Resolve service complete");
83
+ }
84
+
85
+ @Override
86
+ public void onResolveFailed(NsdServiceInfo info, int err)
87
+ {
88
+ Log.e(TAG, "Cannot resolve service " + info.getServiceName() +
89
+ ", Err: " + err);
90
+ }
91
+ };
92
+
93
+ mLostResListener = new NsdManager.ResolveListener()
94
+ {
95
+ @Override
96
+ public void onServiceResolved(NsdServiceInfo info)
97
+ {
98
+ Log.v(TAG, "Resolve service complete");
99
+ }
100
+
101
+ @Override
102
+ public void onResolveFailed(NsdServiceInfo info, int err)
103
+ {
104
+ Log.e(TAG, "Cannot resolve service " + info.getServiceName() +
105
+ ", Err: " + err);
106
+ }
107
+ };
108
+
109
+ searchButton.setOnClickListener(new OnClickListener()
110
+ {
111
+ @Override
112
+ public void onClick(View v)
113
+ {
114
+ startDiscovery();
115
+ }
116
+ });
117
+
118
+ }
119
+
120
+ private void startDiscovery()
121
+ {
122
+ String service;
123
+
124
+ service = serviceNameEdit.getText().toString();
125
+
126
+ mManager.discoverServices(service, NsdManager.PROTOCOL_DNS_SD, mDiscListener);
127
+
128
+ }
129
+
130
+ }
131
+ ```

1

削除しました

2017/11/28 05:09

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,131 +1,1 @@
1
- 表題件のついて質問があり
1
+ 内容は削除されした
2
- NsdManagerを使用してDNS検索を5秒間行う機能を実装しました。
3
- discoverServicesを実行中に再度discoverServicesを行うと
4
-
5
- `java.lang.IllegalArgumentException: listener already in use at android.net.nsd.NsdManager.resolveService`が発生します。
6
- discoverServicesが起動中かどうかを調べる方法を教えてください。
7
-
8
- ```java
9
- public class DiscActivity extends Activity
10
- {
11
- private static final String TAG = "DiscActivity";
12
- private static final long DEFAULT_TIMEOUT = 5000;
13
-
14
- private NsdManager mManager;
15
- private NsdManager.DiscoveryListener mDiscListener = null;
16
- private NsdManager.ResolveListener mFoundResListener = null;
17
- private NsdManager.ResolveListener mLostResListener = null;
18
-
19
- @Override
20
- protected void onCreate(Bundle savedInstanceState)
21
- {
22
- super.onCreate(savedInstanceState);
23
- setContentView(R.layout.activity_disc);
24
-
25
- mContext = this;
26
- mAdapter = new ServiceAdapter();
27
-
28
- mManager = (NsdManager) mContext.getSystemService(Context.NSD_SERVICE);
29
-
30
- mDiscListener = new NsdManager.DiscoveryListener()
31
- {
32
- String mService;
33
-
34
- @Override
35
- public void onDiscoveryStarted(String serviceType)
36
- {
37
- Log.v(TAG, "Service started for protocol: " + serviceType);
38
- }
39
-
40
- @Override
41
- public void onDiscoveryStopped(String serviceType)
42
- {
43
- Log.v(TAG, "Service stopped for protocol: " + serviceType);
44
- }
45
-
46
- @Override
47
- public void onServiceFound(NsdServiceInfo info)
48
- {
49
- Log.v(TAG, "Found service: " + info.getServiceName());
50
- mManager.resolveService(info, mFoundResListener);
51
- }
52
-
53
- @Override
54
- public void onServiceLost(NsdServiceInfo info)
55
- {
56
- Log.v(TAG, "Lost service: " + info.getServiceName());
57
- mManager.resolveService(info, mLostResListener);
58
- }
59
-
60
- @Override
61
- public void onStartDiscoveryFailed(String serviceType, int err)
62
- {
63
- mService = serviceType;
64
- Log.v(TAG, "Service failed to start for protocol: " + serviceType + ", Err: " + err);
65
- }
66
-
67
- @Override
68
- public void onStopDiscoveryFailed(String serviceType, int err)
69
- {
70
- mService = serviceType;
71
-
72
- Log.v(TAG, "Service failed to stop for protocol: " + serviceType + ", Err: " + err);
73
- }
74
-
75
- };
76
-
77
- mFoundResListener = new NsdManager.ResolveListener()
78
- {
79
- @Override
80
- public void onServiceResolved(NsdServiceInfo info)
81
- {
82
- Log.v(TAG, "Resolve service complete");
83
- }
84
-
85
- @Override
86
- public void onResolveFailed(NsdServiceInfo info, int err)
87
- {
88
- Log.e(TAG, "Cannot resolve service " + info.getServiceName() +
89
- ", Err: " + err);
90
- }
91
- };
92
-
93
- mLostResListener = new NsdManager.ResolveListener()
94
- {
95
- @Override
96
- public void onServiceResolved(NsdServiceInfo info)
97
- {
98
- Log.v(TAG, "Resolve service complete");
99
- }
100
-
101
- @Override
102
- public void onResolveFailed(NsdServiceInfo info, int err)
103
- {
104
- Log.e(TAG, "Cannot resolve service " + info.getServiceName() +
105
- ", Err: " + err);
106
- }
107
- };
108
-
109
- searchButton.setOnClickListener(new OnClickListener()
110
- {
111
- @Override
112
- public void onClick(View v)
113
- {
114
- startDiscovery();
115
- }
116
- });
117
-
118
- }
119
-
120
- private void startDiscovery()
121
- {
122
- String service;
123
-
124
- service = serviceNameEdit.getText().toString();
125
-
126
- mManager.discoverServices(service, NsdManager.PROTOCOL_DNS_SD, mDiscListener);
127
-
128
- }
129
-
130
- }
131
- ```