Comment obtenir la latitude et la longitude de la position actuelle dans Android?

J'ai un Fragment dans lequel je veux montrer emplacement actuel de l'utilisateur(de l'appareil). J'utilise Google Map API Android v2. De la façon de faire actuelle de la latitude et de la longitude de l'appareil?

Ci-dessous vous pouvez voir le code que j'ai utilisé. Malheureusement application fonctionne mal, pas comme je l'espérais. Il vient de voir la carte, mais il n'y a pas de marqueur que j'ai mis et aucun emplacement actuel. N'importe qui peut le vérifier et le corriger? Quoi de mal? Merci pour toute aide!

EDIT:

MainFragment.java

public class MainFragment extends Fragment{
private SupportMapFragment mSupportMapFragment;
private GoogleMap mGoogleMap;
public BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
LatLng temp = new LatLng(extras.getDouble("Latitude"),extras.getDouble("Longitude"));
}
};
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
FragmentManager mFragmentManager = getChildFragmentManager();
mSupportMapFragment = (SupportMapFragment) mFragmentManager.findFragmentById(R.id.map_container);
if (mSupportMapFragment == null) {
mSupportMapFragment = SupportMapFragment.newInstance();
mFragmentManager.beginTransaction().replace(R.id.map_container, mSupportMapFragment).commit();
}
//Broadcast/Filter
IntentFilter filter = new IntentFilter();
filter.addAction(LocationService.BROADCAST_ACTION);
getActivity().registerReceiver(receiver, filter);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
//Start service
getActivity().startService(new Intent(getActivity(),LocationService.class));
}
@Override
public void onResume(){
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "BroadcastReceiver works!");
Bundle extras = intent.getExtras();
final LatLng temp = new LatLng(extras.getDouble("Latitude"),extras.getDouble("Longitude"));
if (mGoogleMap != null) {
mGoogleMap = mSupportMapFragment.getMap();
mGoogleMap.addMarker(new MarkerOptions().position(temp).title("Marker").snippet("Location"));
}
try {
CameraUpdate center = CameraUpdateFactory.newLatLng(temp);
CameraUpdate zoom = CameraUpdateFactory.zoomTo(15f);
mGoogleMap.moveCamera(center);
mGoogleMap.animateCamera(zoom);
}catch (NumberFormatException e) {
//Some code here for exception
}
}
};
}
@Override
public void onDetach() {
super.onDetach();
try {
Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");
childFragmentManager.setAccessible(true);
childFragmentManager.set(this, null);
} catch (NoSuchFieldException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
}

fragment_main.xml

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map_container">
<!-- The map fragments will go here -->
</RelativeLayout>
Pouvez-vous ajouter à votre journal d'erreur?
Je l'ai testé en réel de l'appareil. J'ai testé avec les valeurs de latitude et longitude qui je viens d'écrire et zome il donc, dans ce cas, il a travaillé. J'ai aussi essayé de tester dans l'émulateur qui ont Api Google mais il y a erreur de mémoire.
Bonjour @Muthu j'ai édité mon post. Maintenant je viens de voir la carte et il n'a pas montrer de marqueur et de l'emplacement actuel. S'il vous plaît pouvez-vous vérifier le code de l'être à nouveau et dire quoi de mal? Merci et bonne journée!
si vous voulez je pourrais partager mon Lieu de travail code de service.
Je pense qu'il sera utile pour moi si vous me donner votre exemple @Muthu.

OriginalL'auteur Nurzhan Nogerbek | 2015-02-08