2017-08-21 62 views

回答

0

使一類項目,並複製該代碼

import android.app.Service; 
import android.content.Context; 
import android.content.Intent; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.os.IBinder; 
import android.support.annotation.Nullable; 
import android.util.Log; 



public class AppLocationService extends Service implements LocationListener { 
protected LocationManager locationManager; 
Location location; 
private static final long min_distance_forupdate = 10; 
private static final long min_time_to_update = 2 * 60 * 1000; 

public AppLocationService(Context context) { 
    locationManager = (LocationManager) context.getSystemService(LOCATION_SERVICE); 


} 

public Location getLocation(String provider) { 
    if (locationManager.isProviderEnabled(provider)) { 

try { 

locationManager.requestLocationUpdates(provider, min_time_to_update, min_distance_forupdate, this); 
if (locationManager != null) { 
    location = locationManager.getLastKnownLocation(provider); 
    return location; 

} 
}catch (SecurityException r){ 

    Log.d("loc",r.getMessage()); 
} 
      return location; 




    } 

return location; 
} 

@Nullable 
@Override 
public IBinder onBind(Intent intent) { 
    return null; 
} 

@Override 
public void onLocationChanged(Location location) { 

} 

@Override 
public void onStatusChanged(String s, int i, Bundle bundle) { 

} 

@Override 
public void onProviderEnabled(String s) { 

} 

@Override 
public void onProviderDisabled(String s) { 

} 
} 

然後在onMapReady功能使用Google地圖,活動驗證碼

mMap = googleMap; 
    appLocationService = new AppLocationService(MapsActivity.this); 


    Location newlocation =  appLocationService.getLocation(LocationManager.NETWORK_PROVIDER); 

    if (newlocation != null) { 
     double curlat = newlocation.getLatitude(); 
     double curlog = newlocation.getLongitude(); 

     Log.d("latitude", curlat + " ----" + curlog); 



     LatLng sydney = new LatLng(curlat, curlog); 
     mMap.addMarker(new MarkerOptions().position(sydney).title("Your location")); 
     mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 
     LatLng coordinate = new LatLng(curlat, curlog); 
     CameraUpdate yourLocation = CameraUpdateFactory.newLatLngZoom(coordinate, 5); 
     mMap.animateCamera(yourLocation); 

     CameraPosition cameraPosition = new CameraPosition.Builder() 

       .target(new LatLng(curlat, curlog))  // Sets the center of the map to location user 

       .zoom(17)     // Sets the zoom 
       .bearing(90)    // Sets the orientation of the camera to east 
       .tilt(40)     // Sets the tilt of the camera to 30 degrees 
       .build();     // Creates a CameraPosition from the builder 
     mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 
+0

感謝名單很多朋友 –

+0

如果出現任何問題請問我否則標記我的回答 – Hami

+0

標記答案plz – Hami

相關問題