2013-05-22 14 views
6

Quindi questo è il mio MyLocationListener Classejava.lang.SecurityException "GPS" fornitore di posizione richiede l'autorizzazione 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 

    } 

} 

E questo è il mio GPS Classe di attività

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

} 

Ora quando l'eseguo funziona ma dopo aver premuto il pulsante il programma si blocca ci sono molti messaggi di errore a busy cat

C'è un errore me ssage che dice che il fornitore di posizione "gps" java.lang.SecurityException richiede il permesso ACCESS_FINE_LOCATION, devo aggiungere che, in caso affermativo, dove lo aggiungo? Penso che questa sia stata la causa del mio programma in crash.

risposta

11

Ha senso da logcat fornito. Aggiungere questo nella vostra manifesta

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

Nota: è necessario aggiungere le autorizzazioni al nodo manifest del manifest. Maggiori informazioni sulla struttura delle autorizzazioni possono essere trovate qui: [link] (http://developer.android.com/guide/topics/manifest/manifest-intro.html#perms) – GreatSeaSpider

-1

ya correggere è necessario utilizzare il permesso

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

mettere questo nel tuo permesso manifestare ..

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

è necessario aggiungere le seguenti autorizzazioni per il manifesto Android:

AndroidManifest.xml

È inoltre possibile utilizzare l'editor di autorizzazioni di Eclipse.

Problemi correlati