11package cn .darkal .networkdiagnosis .Task ;
22
3+ import android .Manifest ;
4+ import android .app .Activity ;
35import android .content .Context ;
6+ import android .content .pm .PackageManager ;
7+ import android .support .v4 .app .ActivityCompat ;
8+ import android .support .v4 .content .ContextCompat ;
49import android .widget .TextView ;
510
611import com .netease .LDNetDiagnoService .LDNetDiagnoListener ;
1823public class TraceTask extends BaseTask implements LDNetDiagnoListener {
1924 String url ;
2025 TextView resultTextView ;
21- Context context ;
22- String result ;
26+ Activity context ;
2327
24- public TraceTask (Context context , String url , TextView resultTextView ) {
28+ public TraceTask (Activity context , String url , TextView resultTextView ) {
2529 super (url , resultTextView );
2630 this .context = context ;
2731 this .url = url ;
@@ -37,15 +41,21 @@ public Runnable getExecRunnable() {
3741 @ Override
3842 public void run () {
3943 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+ }
4959 }
5060 catch (Exception e ){
5161 resultTextView .post (new updateResultRunnable (e .toString () + "\n " ));
0 commit comments