如何在Map Start的App StartUp上通过Intent启用移动数据

时间:2015-12-18 12:17:45

标签: android gps android-mapview

我是Android新手,我想在我的应用程序中查找我的位置然后再去检查我的位置我想检查我的Gps和Internet连接

ie:如果Gps未启用通过调用Intent我们是呼叫设置而我们启用它同样如果未启用Internet移动数据我们如何通过意图启用移动数据

例如如果我们想通过Intent打开Gps我们调用Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);

lisewise for Enable Mobile Data我们称之为什么意思?

这是我的代码:

    public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

        private GoogleMap mMap;
        LocationManager locationManager;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_maps);

            checkGPSStatus();
                SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                        .findFragmentById(R.id.map);
                mapFragment.getMapAsync(this);

        }



     public void onSearch(View view)
        {
            EditText location_tf = (EditText)findViewById(R.id.search);
            String location = location_tf.getText().toString();
            List<Address> addressList = null;
            if(location != null || !location.equals(""))
            {
                Geocoder geocoder = new Geocoder(this);
                try {
                    addressList = geocoder.getFromLocationName(location , 1);


                } catch (IOException e) {
                    e.printStackTrace();
                }

                Address address = addressList.get(0);
                LatLng latLng = new LatLng(address.getLatitude() , address.getLongitude());
                mMap.addMarker(new MarkerOptions().position(latLng).title("Marker"));
                mMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));

            }
        }

@Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        // Add a marker in Sydney and move the camera
      //  LatLng sydney = new LatLng(0, 0);
        mMap.addMarker(new MarkerOptions().position(new LatLng(0,0)).title("Marker"));

    }
    private void checkGPSStatus() {
        LocationManager locationManager = null;
        boolean gps_enabled = false;
        boolean network_enabled = false;
        if ( locationManager == null) {
            locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        }
        try {
            gps_enabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
        } catch (Exception ex){}
        try {
            network_enabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
        } catch (Exception ex){}
        if ( !gps_enabled && !network_enabled ){
            AlertDialog.Builder dialog = new AlertDialog.Builder(this);
            dialog.setMessage("GPS not enabled");
            dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    //this will navigate user to the device location settings screen
                    Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                    startActivity(intent);
                }
            });
            AlertDialog alert = dialog.create();
            alert.show();
        }
    }

1 个答案:

答案 0 :(得分:0)

With The Following permissions:

        <!-- Internet Permissions -->
        <uses-permission android:name="android.permission.INTERNET" />

        <!-- Network State Permissions -->
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Try This

    public boolean isConnectingToInternet(){
            ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
              if (connectivity != null) 
              {
                  NetworkInfo[] info = connectivity.getAllNetworkInfo();
                  if (info != null) 
                      for (int i = 0; i < info.length; i++) 
                          if (info[i].getState() == NetworkInfo.State.CONNECTED)
                          {
                              return true;
                          }

              }
              return false;
        }

Use This as follow:

    if (isConnectingToInternet()) {
                        // Internet Connection is Present
                        // make HTTP requests
                        showAlertDialog(AndroidDetectInternetConnectionActivity.this, "Internet Connection",
                                "You have internet connection", true);
                    } else {
                        // Internet connection is not present
                        // Ask user to connect to Internet
                         AlertDialog alertDialog = new AlertDialog.Builder(context).create();

                        // Setting Dialog Title
                        alertDialog.setTitle("Internet Connection");

                       // Setting Dialog Message
                       alertDialog.setMessage("You don't have internet connection.");

                      // Setting alert dialog icon
                      alertDialog.setIcon((status) ? R.drawable.success : R.drawable.fail);

                      // Setting OK Button
                      alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                      public void onClick(DialogInterface dialog, int which) {
                      Intent intent = new Intent(Intent.ACTION_MAIN);
                      intent.setClassName("com.android.phone",                       "com.android.phone.NetworkSetting");
                      startActivity(intent);
                      }
                     });

                     // Showing Alert Message
                     alertDialog.show();
        }