4
4
import android .content .BroadcastReceiver ;
5
5
import android .content .Context ;
6
6
import android .content .IntentFilter ;
7
- import android .graphics .Color ;
8
7
import android .net .wifi .WpsInfo ;
9
8
import android .net .wifi .p2p .WifiP2pConfig ;
10
9
import android .net .wifi .p2p .WifiP2pDevice ;
13
12
import android .net .wifi .p2p .WifiP2pManager ;
14
13
import android .net .wifi .p2p .nsd .WifiP2pDnsSdServiceRequest ;
15
14
import android .os .Bundle ;
15
+ import android .os .Handler ;
16
+ import android .os .Message ;
16
17
import android .support .v4 .app .Fragment ;
17
18
import android .support .v4 .content .ContextCompat ;
18
19
import android .support .v4 .widget .DrawerLayout ;
28
29
import android .widget .Toast ;
29
30
30
31
import com .alibaba .fastjson .JSON ;
31
- import com .clverpanda .nfshare .MainActivity ;
32
32
import com .clverpanda .nfshare .NFShareApplication ;
33
33
import com .clverpanda .nfshare .R ;
34
34
import com .clverpanda .nfshare .WIFISendActivity ;
35
35
import com .clverpanda .nfshare .dao .DaoSession ;
36
- import com .clverpanda .nfshare .dao .Device ;
37
36
import com .clverpanda .nfshare .dao .Task ;
38
- import com .clverpanda .nfshare .model .DataType ;
39
37
import com .clverpanda .nfshare .model .FileInfo ;
40
38
import com .clverpanda .nfshare .model .TaskStatus ;
41
39
import com .clverpanda .nfshare .model .TransferData ;
60
58
import java .util .HashMap ;
61
59
import java .util .List ;
62
60
import java .util .Map ;
61
+ import java .util .Timer ;
62
+ import java .util .TimerTask ;
63
63
import java .util .concurrent .TimeUnit ;
64
64
65
65
import butterknife .BindView ;
@@ -105,7 +105,34 @@ public class ReceiveFrag extends Fragment
105
105
SweetAlertDialog pDialog ;
106
106
GetShareRec getShareRec = null ;
107
107
108
+ private static final int REPORT_ERR2SERVER_DONE = 1024 ;
109
+ private boolean isGetFromWifiDirect = false ;
110
+ private Timer timer = new Timer ();
111
+ private TimerTask getFromWifiOverTimeTask = new TimerTask ()
112
+ {
113
+ @ Override
114
+ public void run ()
115
+ {
116
+ if (!isGetFromWifiDirect )
117
+ {
118
+ mManager .stopPeerDiscovery (mChannel , null );
119
+ reportConnErr2Server ();
120
+ Message message = new Message ();
121
+ message .what = REPORT_ERR2SERVER_DONE ;
122
+ handler .sendMessage (message );
123
+ }
124
+ }
125
+ };
126
+
108
127
128
+ Handler handler = new Handler () {
129
+ public void handleMessage (Message msg ) {
130
+ if (msg .what == REPORT_ERR2SERVER_DONE )
131
+ {
132
+ reportConnErr2ServerDone ();
133
+ }
134
+ }
135
+ };
109
136
110
137
public ReceiveFrag () { }
111
138
@@ -208,6 +235,7 @@ public void onDataReceivedFailed()
208
235
209
236
private void tryGetFromWifiDirect ()
210
237
{
238
+ isGetFromWifiDirect = false ;
211
239
mManager .discoverPeers (mChannel , new WifiP2pManager .ActionListener ()
212
240
{
213
241
@ Override
@@ -221,6 +249,7 @@ public void onFailure(int reasonCode)
221
249
confirmReportConnErr2Server ();
222
250
}
223
251
});
252
+ timer .schedule (getFromWifiOverTimeTask , 10000 );
224
253
}
225
254
226
255
@@ -240,6 +269,7 @@ public void onPeersAvailable(WifiP2pDeviceList peerList)
240
269
{
241
270
if (item .deviceAddress .equals (getShareRec .getOrigin_phone ()))
242
271
{
272
+ isGetFromWifiDirect = true ;
243
273
connect (item );
244
274
return ;
245
275
}
@@ -289,13 +319,20 @@ public void run()
289
319
}
290
320
else
291
321
Log .d (TAG , "服务器:回调失败" );
322
+ getShareRec = null ;
292
323
}
293
324
catch (IOException e )
294
325
{
295
326
Log .e (TAG , "服务器:回调失败" , e );
327
+ getShareRec = null ;
296
328
}
297
329
}
298
330
}).start ();
331
+ reportConnErr2ServerDone ();
332
+ }
333
+
334
+ private void reportConnErr2ServerDone ()
335
+ {
299
336
Toast .makeText (getContext (), "无法找到对方,已向服务器汇报" , Toast .LENGTH_SHORT ).show ();
300
337
pDialog .cancel ();
301
338
}
0 commit comments