diff --git a/iFish7/src/main/java/com/ifish/activity/newbind/NewBindDeviceActivity.java b/iFish7/src/main/java/com/ifish/activity/newbind/NewBindDeviceActivity.java index 04cbd701a..4fa40c615 100644 --- a/iFish7/src/main/java/com/ifish/activity/newbind/NewBindDeviceActivity.java +++ b/iFish7/src/main/java/com/ifish/activity/newbind/NewBindDeviceActivity.java @@ -9,9 +9,11 @@ import android.app.AlertDialog; import android.app.Dialog; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothGatt; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; +import android.location.LocationManager; import android.os.Build; import android.os.Bundle; import android.os.CountDownTimer; @@ -141,7 +143,7 @@ public class NewBindDeviceActivity extends AppCompatActivity { initTitle(); initView(); initListener(); - initWifiName(); + checkNet(); checkWifiUtil = new CheckWifiUtil(); airKissUtil = new AirKissUtil(); type = getIntent().getStringExtra("type"); @@ -163,8 +165,49 @@ public class NewBindDeviceActivity extends AppCompatActivity { currentDevice = getIntent().getParcelableExtra("device"); } EventBus.getDefault().register(this); + + + + + } + void checkNet(){ + if (checkGPSIsOpen(this)){ + initWifiName(); + }else { + AlertDialog.Builder dialog = new AlertDialog.Builder(this, AlertDialog.THEME_HOLO_LIGHT); + dialog.setCancelable(true); + dialog.setTitle("提示"); + dialog.setMessage("为了获取手机连接的wifi名称,请打开定位"); + dialog.setNegativeButton("取消", (arg0, arg1) -> { + arg0.dismiss(); + + }); + dialog.setPositiveButton("去打开", (dialog1, which) -> { + dialog1.dismiss(); + Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); + startActivityForResult(intent, 101); + }); + dialog.show(); + } + } + + public static boolean checkGPSIsOpen(Context context) { + LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); + //return locationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER); + // 通过GPS卫星定位,定位级别可以精确到街(通过24颗卫星定位,在室外和空旷的地方定位准确、速度快) + boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); + // 通过WLAN或移动网络(3G/2G)确定的位置(也称作AGPS,辅助GPS定位。主要用于在室内或遮盖物(建筑群或茂密的深林等)密集的地方定位) + boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); + if(gps || network) { + return true; + } + return false; + } + + + private void initWifiName() { WifiAdmin wifiAdmin = new WifiAdmin(this); String wifissid = wifiAdmin.getSSID(); @@ -1269,6 +1312,10 @@ public class NewBindDeviceActivity extends AppCompatActivity { protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); L.i(requestCode+"jjia--------result---"+resultCode); + L.i(requestCode+"jjia--------result-1--"+requestCode); + if (101== requestCode && 0==resultCode){ + checkNet(); + } } private void showDialog(String msg){ layoutLoading.setVisibility(View.VISIBLE);