2014-04-27 73 views
1

我試圖獲取用戶的位置:如何在我的應用程序內啓用網絡和gps位置?

//獲取GPS狀態

isGPSEnabled = locationManage.isProviderEnabled(LocationManager.GPS_PROVIDER); 

     // getting network status 
     isNetworkEnabled = locationManager 
       .isProviderEnabled(LocationManager.NETWORK_PROVIDER); 

     if (!isGPSEnabled && !isNetworkEnabled) { 
      // no network provider is enabled 
      Log.e(MyLogger.TAG, "Non providers are enabled"); 

我需要用戶設置enable network locationturn on GPS

我該如何幫助用戶完成上述每個選項?

  1. 打開設備設置頁面,回到我的背部按活動。

  2. 僅在我的應用程序中更改這兩個設備設置?

意味着打開一個確認對話框,使這兩個設置。

+0

嘗試此鏈接:http://stackoverflow.com/questions/6095919/android-how-to-get-current-location-latitude-and-longitude, – SacreDeveloper

回答

0

以及改變代碼的這些設置是不可能再經過4.1(他們可能是一個解決辦法打開它,因爲上一個錯誤see here但它不會在4.3或4.4工作,或者你需要植根於手機,你可以做的是顯示一個對話框,用戶去設置,使GPS

public static void LocationAlertDialog(final Context context) { 

    AlertDialog.Builder d = new AlertDialog.Builder(context); 
    d.setTitle("No Providers"); 
    d.setMessage("Unfortunately, you don't have any providers to get your location, would you like to turn on your GPS?"); 

    d.setNegativeButton(context.getResources().getString(R.string.dialogCancel), new OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // TODO Auto-generated method stub 
     } 
    }); 

    d.setPositiveButton(context.getResources().getString(R.string.dialogAccept), new OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // TODO Auto-generated method stub 
      Intent i = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); 
      context.startActivityForResult(i, 0); 
     } 
    }); 

    d.show(); 
} 

調用以前的功能

if (!isGPSEnabled && !isNetworkEnabled) { 
     LocationAlertDialog(this); 
     Log.e(MyLogger.TAG, "Non providers are enabled"); 

然後在onActivityResult你可以檢查代碼0,如果GPS已開啓是否

0

startActivityForResult(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS),0);

+0

我可以改變這兩個設備的設置僅在我的應用程序內? –

+0

它會改變你的應用程序安裝,你不能改變只有一個應用程序的位置配置 – xgc1986

+0

不,我的意思是我怎麼能改變所有應用程序的安裝,但從我的應用程序的全局設置 - 靜靜地 - 不帶用戶到設置頁面 –

相關問題