0

Я пробовал так много разных решений, и я также искал в Google, но до сих пор не получил требуемого решения. Проблема еще не установлена. У меня есть ViewPager с некоторыми фрагментами. В первом фрагменте я хочу использовать Google Map API v2 для отображения текущего местоположения устройства. Он отлично работает, если я использую текущие значения широты/долготы и масштабирую его. Каков наилучший способ узнать текущую широту и долготу текущее местоположение в Фрагменте (NOT FragmentActivity or Activity)? Я просто хочу знать, возможно ли это во Фрагменте? Сообщите мне, пожалуйста, если у кого-то была такая же проблема и она была решена!Показать текущее местоположение устройства Google Map (Фрагмент)

Спасибо за помощь!

Здесь ниже код, который я использовал для установки карты:

fragment.xml

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/map_container"> 

     <!-- The map fragments will go here --> 
</RelativeLayout> 

MainFragment.java

public class MainFragment extends Fragment{ 
     private SupportMapFragment mSupportMapFragment; 
     private GoogleMap mGoogleMap; 

     @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(); 
     } 
    } 

    @Override 
    public void onResume(){ 
    if(mGoogleMap==null){ 
      mGoogleMap = mSupportMapFragment.getMap(); 
      //Set the marker 
      mGoogleMap.addMarker(new MarkerOptions() 
        .position(new LatLng(???)) 
        .title("Location") 
        .snippet("Your current location")); 

      // Move the camera and zoom it to location 
      mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(???), 15)); 
     } 
    } 

    @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); 
     } 
    } 
} 
+0

его возможно в разделе «Фрагмент» ... вы можете показать свой XML? –

+0

Можете ли вы проверить сообщение внимательно. Я добавил xml. –

+0

Почему это имеет значение, если вы делаете это в Фрагменте или Деятельности? Я не понимаю, что такое непредвиденное обстоятельство ... –

ответ

0

для текущего Location..Try с это ..

LocationManager lm; 
    Location location; 
    Geocoder geo; 

    //convert lat, long to address. 
    List<Address> addresses; 
    lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    //get the last known latitude longitude from network 
    location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
    //create an instance of geocoder 
    geo = new Geocoder(this.getApplicationContext(), Locale.getDefault()); 
    try 
    { 
     addresses = geo.getFromLocation(location.getLatitude(), location.getLongitude(), 1); 
     if(addresses.get(0).getPostalCode() != null) 
     { 
      //You can get Lat, Long or Zip code 
     } 
    } 
    catch (Exception e) 
    { 

    } 
+1

Эй, парень, это шутка? Проверьте мое сообщение внимательно. Мне кажется, ты не понимаешь мой вопрос. Я хочу знать текущее местоположение устройства, но все материалы, которые я нашел, используют Activity или FragmentActivity, которые не работают правильно в Fragment. Поэтому я хочу знать, как правильно это сделать в моем случае. У тебя есть идеи? –

+0

Привет! Я смотрю на вас обновленный код, и у меня есть некоторые вопросы. Как, по вашему мнению, лучше проверить соединение с сервисом перед его использованием? А где лучше использовать свой код? –