質問編集履歴

2

削除の修正

2017/11/28 05:09

投稿

komon4242
komon4242

スコア21

test CHANGED
File without changes
test CHANGED
@@ -1 +1,261 @@
1
- 内容は削除されした
1
+ 表題件のついて質問があり
2
+
3
+ NsdManagerを使用してDNS検索を5秒間行う機能を実装しました。
4
+
5
+ discoverServicesを実行中に再度discoverServicesを行うと
6
+
7
+
8
+
9
+ `java.lang.IllegalArgumentException: listener already in use at android.net.nsd.NsdManager.resolveService`が発生します。
10
+
11
+ discoverServicesが起動中かどうかを調べる方法を教えてください。
12
+
13
+
14
+
15
+ ```java
16
+
17
+ public class DiscActivity extends Activity
18
+
19
+ {
20
+
21
+ private static final String TAG = "DiscActivity";
22
+
23
+ private static final long DEFAULT_TIMEOUT = 5000;
24
+
25
+
26
+
27
+ private NsdManager mManager;
28
+
29
+ private NsdManager.DiscoveryListener mDiscListener = null;
30
+
31
+ private NsdManager.ResolveListener mFoundResListener = null;
32
+
33
+ private NsdManager.ResolveListener mLostResListener = null;
34
+
35
+
36
+
37
+ @Override
38
+
39
+ protected void onCreate(Bundle savedInstanceState)
40
+
41
+ {
42
+
43
+ super.onCreate(savedInstanceState);
44
+
45
+ setContentView(R.layout.activity_disc);
46
+
47
+
48
+
49
+ mContext = this;
50
+
51
+ mAdapter = new ServiceAdapter();
52
+
53
+
54
+
55
+ mManager = (NsdManager) mContext.getSystemService(Context.NSD_SERVICE);
56
+
57
+
58
+
59
+ mDiscListener = new NsdManager.DiscoveryListener()
60
+
61
+ {
62
+
63
+ String mService;
64
+
65
+
66
+
67
+ @Override
68
+
69
+ public void onDiscoveryStarted(String serviceType)
70
+
71
+ {
72
+
73
+ Log.v(TAG, "Service started for protocol: " + serviceType);
74
+
75
+ }
76
+
77
+
78
+
79
+ @Override
80
+
81
+ public void onDiscoveryStopped(String serviceType)
82
+
83
+ {
84
+
85
+ Log.v(TAG, "Service stopped for protocol: " + serviceType);
86
+
87
+ }
88
+
89
+
90
+
91
+ @Override
92
+
93
+ public void onServiceFound(NsdServiceInfo info)
94
+
95
+ {
96
+
97
+ Log.v(TAG, "Found service: " + info.getServiceName());
98
+
99
+ mManager.resolveService(info, mFoundResListener);
100
+
101
+ }
102
+
103
+
104
+
105
+ @Override
106
+
107
+ public void onServiceLost(NsdServiceInfo info)
108
+
109
+ {
110
+
111
+ Log.v(TAG, "Lost service: " + info.getServiceName());
112
+
113
+ mManager.resolveService(info, mLostResListener);
114
+
115
+ }
116
+
117
+
118
+
119
+ @Override
120
+
121
+ public void onStartDiscoveryFailed(String serviceType, int err)
122
+
123
+ {
124
+
125
+ mService = serviceType;
126
+
127
+ Log.v(TAG, "Service failed to start for protocol: " + serviceType + ", Err: " + err);
128
+
129
+ }
130
+
131
+
132
+
133
+ @Override
134
+
135
+ public void onStopDiscoveryFailed(String serviceType, int err)
136
+
137
+ {
138
+
139
+ mService = serviceType;
140
+
141
+
142
+
143
+ Log.v(TAG, "Service failed to stop for protocol: " + serviceType + ", Err: " + err);
144
+
145
+ }
146
+
147
+
148
+
149
+ };
150
+
151
+
152
+
153
+ mFoundResListener = new NsdManager.ResolveListener()
154
+
155
+ {
156
+
157
+ @Override
158
+
159
+ public void onServiceResolved(NsdServiceInfo info)
160
+
161
+ {
162
+
163
+ Log.v(TAG, "Resolve service complete");
164
+
165
+ }
166
+
167
+
168
+
169
+ @Override
170
+
171
+ public void onResolveFailed(NsdServiceInfo info, int err)
172
+
173
+ {
174
+
175
+ Log.e(TAG, "Cannot resolve service " + info.getServiceName() +
176
+
177
+ ", Err: " + err);
178
+
179
+ }
180
+
181
+ };
182
+
183
+
184
+
185
+ mLostResListener = new NsdManager.ResolveListener()
186
+
187
+ {
188
+
189
+ @Override
190
+
191
+ public void onServiceResolved(NsdServiceInfo info)
192
+
193
+ {
194
+
195
+ Log.v(TAG, "Resolve service complete");
196
+
197
+ }
198
+
199
+
200
+
201
+ @Override
202
+
203
+ public void onResolveFailed(NsdServiceInfo info, int err)
204
+
205
+ {
206
+
207
+ Log.e(TAG, "Cannot resolve service " + info.getServiceName() +
208
+
209
+ ", Err: " + err);
210
+
211
+ }
212
+
213
+ };
214
+
215
+
216
+
217
+ searchButton.setOnClickListener(new OnClickListener()
218
+
219
+ {
220
+
221
+ @Override
222
+
223
+ public void onClick(View v)
224
+
225
+ {
226
+
227
+ startDiscovery();
228
+
229
+ }
230
+
231
+ });
232
+
233
+
234
+
235
+ }
236
+
237
+
238
+
239
+ private void startDiscovery()
240
+
241
+ {
242
+
243
+ String service;
244
+
245
+
246
+
247
+ service = serviceNameEdit.getText().toString();
248
+
249
+
250
+
251
+ mManager.discoverServices(service, NsdManager.PROTOCOL_DNS_SD, mDiscListener);
252
+
253
+
254
+
255
+ }
256
+
257
+
258
+
259
+ }
260
+
261
+ ```

1

削除しました

2017/11/28 05:09

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,261 +1 @@
1
- 表題件のついて質問があり
1
+ 内容は削除されした
2
-
3
- NsdManagerを使用してDNS検索を5秒間行う機能を実装しました。
4
-
5
- discoverServicesを実行中に再度discoverServicesを行うと
6
-
7
-
8
-
9
- `java.lang.IllegalArgumentException: listener already in use at android.net.nsd.NsdManager.resolveService`が発生します。
10
-
11
- discoverServicesが起動中かどうかを調べる方法を教えてください。
12
-
13
-
14
-
15
- ```java
16
-
17
- public class DiscActivity extends Activity
18
-
19
- {
20
-
21
- private static final String TAG = "DiscActivity";
22
-
23
- private static final long DEFAULT_TIMEOUT = 5000;
24
-
25
-
26
-
27
- private NsdManager mManager;
28
-
29
- private NsdManager.DiscoveryListener mDiscListener = null;
30
-
31
- private NsdManager.ResolveListener mFoundResListener = null;
32
-
33
- private NsdManager.ResolveListener mLostResListener = null;
34
-
35
-
36
-
37
- @Override
38
-
39
- protected void onCreate(Bundle savedInstanceState)
40
-
41
- {
42
-
43
- super.onCreate(savedInstanceState);
44
-
45
- setContentView(R.layout.activity_disc);
46
-
47
-
48
-
49
- mContext = this;
50
-
51
- mAdapter = new ServiceAdapter();
52
-
53
-
54
-
55
- mManager = (NsdManager) mContext.getSystemService(Context.NSD_SERVICE);
56
-
57
-
58
-
59
- mDiscListener = new NsdManager.DiscoveryListener()
60
-
61
- {
62
-
63
- String mService;
64
-
65
-
66
-
67
- @Override
68
-
69
- public void onDiscoveryStarted(String serviceType)
70
-
71
- {
72
-
73
- Log.v(TAG, "Service started for protocol: " + serviceType);
74
-
75
- }
76
-
77
-
78
-
79
- @Override
80
-
81
- public void onDiscoveryStopped(String serviceType)
82
-
83
- {
84
-
85
- Log.v(TAG, "Service stopped for protocol: " + serviceType);
86
-
87
- }
88
-
89
-
90
-
91
- @Override
92
-
93
- public void onServiceFound(NsdServiceInfo info)
94
-
95
- {
96
-
97
- Log.v(TAG, "Found service: " + info.getServiceName());
98
-
99
- mManager.resolveService(info, mFoundResListener);
100
-
101
- }
102
-
103
-
104
-
105
- @Override
106
-
107
- public void onServiceLost(NsdServiceInfo info)
108
-
109
- {
110
-
111
- Log.v(TAG, "Lost service: " + info.getServiceName());
112
-
113
- mManager.resolveService(info, mLostResListener);
114
-
115
- }
116
-
117
-
118
-
119
- @Override
120
-
121
- public void onStartDiscoveryFailed(String serviceType, int err)
122
-
123
- {
124
-
125
- mService = serviceType;
126
-
127
- Log.v(TAG, "Service failed to start for protocol: " + serviceType + ", Err: " + err);
128
-
129
- }
130
-
131
-
132
-
133
- @Override
134
-
135
- public void onStopDiscoveryFailed(String serviceType, int err)
136
-
137
- {
138
-
139
- mService = serviceType;
140
-
141
-
142
-
143
- Log.v(TAG, "Service failed to stop for protocol: " + serviceType + ", Err: " + err);
144
-
145
- }
146
-
147
-
148
-
149
- };
150
-
151
-
152
-
153
- mFoundResListener = new NsdManager.ResolveListener()
154
-
155
- {
156
-
157
- @Override
158
-
159
- public void onServiceResolved(NsdServiceInfo info)
160
-
161
- {
162
-
163
- Log.v(TAG, "Resolve service complete");
164
-
165
- }
166
-
167
-
168
-
169
- @Override
170
-
171
- public void onResolveFailed(NsdServiceInfo info, int err)
172
-
173
- {
174
-
175
- Log.e(TAG, "Cannot resolve service " + info.getServiceName() +
176
-
177
- ", Err: " + err);
178
-
179
- }
180
-
181
- };
182
-
183
-
184
-
185
- mLostResListener = new NsdManager.ResolveListener()
186
-
187
- {
188
-
189
- @Override
190
-
191
- public void onServiceResolved(NsdServiceInfo info)
192
-
193
- {
194
-
195
- Log.v(TAG, "Resolve service complete");
196
-
197
- }
198
-
199
-
200
-
201
- @Override
202
-
203
- public void onResolveFailed(NsdServiceInfo info, int err)
204
-
205
- {
206
-
207
- Log.e(TAG, "Cannot resolve service " + info.getServiceName() +
208
-
209
- ", Err: " + err);
210
-
211
- }
212
-
213
- };
214
-
215
-
216
-
217
- searchButton.setOnClickListener(new OnClickListener()
218
-
219
- {
220
-
221
- @Override
222
-
223
- public void onClick(View v)
224
-
225
- {
226
-
227
- startDiscovery();
228
-
229
- }
230
-
231
- });
232
-
233
-
234
-
235
- }
236
-
237
-
238
-
239
- private void startDiscovery()
240
-
241
- {
242
-
243
- String service;
244
-
245
-
246
-
247
- service = serviceNameEdit.getText().toString();
248
-
249
-
250
-
251
- mManager.discoverServices(service, NsdManager.PROTOCOL_DNS_SD, mDiscListener);
252
-
253
-
254
-
255
- }
256
-
257
-
258
-
259
- }
260
-
261
- ```