2012-05-17 88 views
0

我正在嘗試使用GPS顯示用戶的位置。我已經寫了下面的代碼,以便如果GPS在設備上被禁用,那麼用戶應該通過轉到設置啓用它。如果它啓用,那麼它應該顯示用戶的當前位置。我正在Android設備上運行應用程序。運行應用程序時我沒有遇到任何錯誤,但位置不會顯示。請幫助 ------------主要活動--------------------經度和緯度未顯示

package com.android.disasterAlertApp; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.Bundle; 

import android.util.Log; 
import android.widget.Toast; 

public class MainActivity extends Activity { 
/** Called when the activity is first created. */ 

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); 
LocationListener ll = new mylocationlistener(); 
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll); 

if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){ 
Toast.makeText(this, "GPS is Enabled in your devide", Toast.LENGTH_SHORT).show(); 
    } 
    else{ 
    showGPSDisabledAlertToUser(); 
    } 
    } 

    private void showGPSDisabledAlertToUser(){ 
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); 
    alertDialogBuilder.setMessage("GPS is disabled.Do you want to enable it?") 
.setCancelable(false) 
.setPositiveButton("Goto Settings Page To Enable GPS", 
new DialogInterface.OnClickListener(){ 
public void onClick(DialogInterface dialog, int id){ 
Intent callGPSSettingIntent = new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); 
startActivity(callGPSSettingIntent); 
    } 
    }); 
alertDialogBuilder.setNegativeButton("Cancel", 
new DialogInterface.OnClickListener(){ 
public void onClick(DialogInterface dialog, int id){ 
dialog.cancel(); 
    } 
}); 
AlertDialog alert = alertDialogBuilder.create(); 
alert.show(); 
} 

    private class mylocationlistener implements LocationListener { 
    public void onLocationChanged(Location location) { 
     if (location != null) { 
    Log.d("LOCATION CHANGED", location.getLatitude() + ""); 
Log.d("LOCATION CHANGED", location.getLongitude() + ""); 
Toast.makeText(MainActivity.this, 
    location.getLatitude() + "" + location.getLongitude(), 
    Toast.LENGTH_LONG).show(); 
    } 
    } 

    public void onProviderDisabled(String provider) { 
    } 
    public void onProviderEnabled(String provider) { 
    } 
    public void onStatusChanged(String provider, int status, Bundle extras) { 
    } 
    } 
} 

------------Manifest----------------- 

<uses-sdk android:minSdkVersion="8" /> 

<application 
    android:icon="@drawable/ic_launcher" 
android:label="@string/app_name" > 
<activity 
    android:name=".Splash" 
    android:label="@string/app_name" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

     <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="com.android.disasterAlertApp.MAINACTIVITY" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

</application> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission> 
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission> 
    <uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES"></uses-permission> 
</manifest> 
+1

互聯網權限 – Akram

+0

添加了互聯網權限,仍然不起作用 –

回答

0

爲了得到它需要GPS位置時間,如果你的建築物內其很難獲得GPS值,如果該設備處於BULDING我們可以得到GPS值之外..

0

清單文件添加此權限

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
0

確保您的設備GPS硬件正在工作。我有2個全新的LG Lucid手機,而GPS在兩者中都無法工作。在位置設置中,只檢查GPS框,然後啓動Google Map查看它是否可以獲取位置。