2013-05-22 13 views
6

तो यह मेरी MyLocationListener कक्षाjava.lang.SecurityException "जीपीएस" स्थान प्रदाता 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 

    } 

} 

है की आवश्यकता है और जब मैं इसे यह काम करता है चलाने के इस अब मेरी जीपीएस गतिविधि वर्ग

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

मुझे कोई त्रुटि है ssage जो java.lang.SecurityException "gps" स्थान प्रदाता को ACCESS_FINE_LOCATION अनुमति की आवश्यकता है, क्या मुझे इसे जोड़ना होगा यदि ऐसा है तो मैं इसे कहां जोड़ूं? मुझे लगता है कि यह मेरे कार्यक्रम का दुर्घटनाग्रस्त होने का कारण था।

उत्तर

11

प्रदान किए गए लॉगकैट से समझें। अपने प्रकट

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

नोट करें मैनिफेस्ट के मैनिफेस्ट नोड में अनुमतियों को जोड़ने की आवश्यकता है। अनुमति संरचना पर अधिक जानकारी यहां मिल सकती है: [लिंक] (http://developer.android.com/guide/topics/manifest/manifest-intro.html#perms) – GreatSeaSpider

0

में इस जोड़े

अनुमतियों की सूची मैनिफ़ेस्ट फ़ाइल

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>// missing in manifest file 

में नीचे अनुमति जोड़े कुछ उपयोगी लिंक

http://developer.android.com/reference/android/Manifest.permission.html

मालसूची फ़ाइल

http://developer.android.com/guide/topics/manifest/manifest-intro.html

-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"/> 

... 

आप ग्रहण के अनुमति संपादक का भी उपयोग कर सकते हैं।

संबंधित मुद्दे