1
1
package cn .darkal .networkdiagnosis .Task ;
2
2
3
+ import android .Manifest ;
4
+ import android .app .Activity ;
3
5
import android .content .Context ;
6
+ import android .content .pm .PackageManager ;
7
+ import android .support .v4 .app .ActivityCompat ;
8
+ import android .support .v4 .content .ContextCompat ;
4
9
import android .widget .TextView ;
5
10
6
11
import com .netease .LDNetDiagnoService .LDNetDiagnoListener ;
18
23
public class TraceTask extends BaseTask implements LDNetDiagnoListener {
19
24
String url ;
20
25
TextView resultTextView ;
21
- Context context ;
22
- String result ;
26
+ Activity context ;
23
27
24
- public TraceTask (Context context , String url , TextView resultTextView ) {
28
+ public TraceTask (Activity context , String url , TextView resultTextView ) {
25
29
super (url , resultTextView );
26
30
this .context = context ;
27
31
this .url = url ;
@@ -37,15 +41,21 @@ public Runnable getExecRunnable() {
37
41
@ Override
38
42
public void run () {
39
43
try {
40
- // TraceRouteWithPing traceRouteWithPing = new TraceRouteWithPing(url, TraceTask.this);
41
- // traceRouteWithPing.executeTraceRoute();
42
- LDNetDiagnoService _netDiagnoService = new LDNetDiagnoService (context .getApplicationContext (),
43
- "NetworkDiagnosis" , "网络诊断应用" , DeviceUtils .getVersion (context ), "" ,
44
- "" , url , "" , "" ,
45
- "" , "" , TraceTask .this );
46
- // 设置是否使用JNIC 完成traceroute
47
- _netDiagnoService .setIfUseJNICTrace (true );
48
- _netDiagnoService .execute ();
44
+ int permissionCheck = ContextCompat .checkSelfPermission (context , Manifest .permission .READ_PHONE_STATE );
45
+
46
+ if (permissionCheck != PackageManager .PERMISSION_GRANTED ) {
47
+ ActivityCompat .requestPermissions (context , new String []{Manifest .permission .READ_PHONE_STATE }, 1 );
48
+ } else {
49
+ // TraceRouteWithPing traceRouteWithPing = new TraceRouteWithPing(url, TraceTask.this);
50
+ // traceRouteWithPing.executeTraceRoute();
51
+ LDNetDiagnoService _netDiagnoService = new LDNetDiagnoService (context .getApplicationContext (),
52
+ "NetworkDiagnosis" , "网络诊断应用" , DeviceUtils .getVersion (context ), "" ,
53
+ "" , url , "" , "" ,
54
+ "" , "" , TraceTask .this );
55
+ // 设置是否使用JNIC 完成traceroute
56
+ _netDiagnoService .setIfUseJNICTrace (true );
57
+ _netDiagnoService .execute ();
58
+ }
49
59
}
50
60
catch (Exception e ){
51
61
resultTextView .post (new updateResultRunnable (e .toString () + "\n " ));
0 commit comments