2013-05-22 29 views
6

Vì vậy, đây là MyLocationListener tôi Lớpjava.lang.SecurityException "gps" nhà cung cấp vị trí yêu cầu sự cho phép 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 

    } 

} 

Và đây là GPS của tôi Hoạt động lớp

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; 
    } 

} 

Bây giờ khi tôi chạy nó nó hoạt động nhưng sau khi tôi nhấn nút, chương trình dừng đáp ứng có rất nhiều thông báo lỗi a busy cat

Có lỗi với tôi ssage nói rằng java.lang.SecurityException "gps" nhà cung cấp vị trí yêu cầu quyền ACCESS_FINE_LOCATION, tôi có phải thêm rằng nếu vậy, nơi nào tôi thêm nó? Tôi nghĩ rằng đây là nguyên nhân của chương trình của tôi để sụp đổ.

Trả lời

11

Có ý nghĩa từ logcat được cung cấp. Thêm này trong manifest

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

Lưu ý rằng quyền cần phải được thêm vào nút tệp kê khai của tệp kê khai. Bạn có thể tìm thêm thông tin về cấu trúc quyền ở đây: [link] (http://developer.android.com/guide/topics/manifest/manifest-intro.html#perms) – GreatSeaSpider

-1

ya sửa bạn cần sử dụng phép

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

đặt này trong Permission manifest .. bạn

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

Bạn phải bổ sung các điều khoản sau đây để manifest Android:

AndroidManifest.xml

... 

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

... 

Bạn cũng có thể sử dụng Trình chỉnh sửa quyền của Eclipse.

Các vấn đề liên quan