2013-05-22 29 views
6

所以這是我MyLocationListener類java.lang.SecurityException異常 「GPS」 定位提供商需要ACCESS_FINE_LOCATION許可

package com.example.gpslocater; 

import android.content.Context; 
import android.location.Location; 
import android.location.LocationListener; 
import android.os.Bundle; 
import android.widget.TextView; 
import android.widget.Toast; 

public class MyLocationListener implements LocationListener { 

     public TextView mLocationTextView; 
    Context mContent; 
    public MyLocationListener(Context context) { 
     mContent = context; 
    } 
    @Override 
    public void onLocationChanged(Location location) { 

     location.getLatitude(); 
     location.getLongitude(); 

     String Text = "My current location is :" + 
     "Latitude = " + location.getLatitude() + 
     " Longitude = " + location.getLongitude(); 
     //figure out a way to make it display through a text view 
     mLocationTextView.setText(Text); 
    } 

    @Override 
    public void onProviderDisabled(String provider) { 
     Toast.makeText(mContent, "Gps Disabled", Toast.LENGTH_SHORT).show(); 

    } 

    @Override 
    public void onProviderEnabled(String provider) { 
     Toast.makeText(mContent, "Gps Enabled", Toast.LENGTH_SHORT); 


    } 

    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) { 
     // TODO Auto-generated method stub 

    } 

} 

這是我的GPS Activity類

public class GPSActivity extends Activity { 
    private Button mGPSButton; 
    private TextView mLatitudeTextView; 
    private TextView mLongitudeTextView; 
    private LocationManager mLocationManager; 
    private LocationListener mLocationListener; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_gps); 

     mLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
     mLocationListener = new MyLocationListener(null); 
     mGPSButton = (Button)findViewById(R.id.press_button); 
     mGPSButton.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mLocationListener); 
      } 
     }); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.g, menu); 
     return true; 
    } 

} 

現在,當我運行它,它的工作原理但是在按下按鈕之後,程序停止響應,出現大量錯誤消息 a busy cat

有錯誤我說java.lang.SecurityException「gps」位置提供程序需要ACCESS_FINE_LOCATION權限的ssage,我必須添加,如果是的話,我在哪裏添加它?我認爲這是我的程序崩潰的原因。

回答

11

從logcat中提供意義。在您的清單

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

請注意需要將權限添加到清單的清單節點。關於權限結構的更多信息可以在這裏找到:[link](http://developer.android.com/guide/topics/manifest/manifest-intro.html#perms) – GreatSeaSpider

-1

雅糾正你需要使用許可

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

把這個在您的清單..權限

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

你必須在以下權限添加到Android清單:

AndroidManifest.xml

... 

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

... 

您還可以使用Eclipse的權限編輯器。

相關問題