Substituir o getMap() por getMapAsync()?

Estou criando uma activity e um fragment pra usar a API do Google Maps. Já fiz os procedimentos de gerar a credential, registrar no manifest, adicionar a dependencies, etc.

Essa é a minha activity:

public class MapaActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mapa);
    MapaFragment mapaFragment = new MapaFragment();
    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    transaction.replace(R.id.map_frag_id, mapaFragment);
    transaction.commit();
}

}

Esse é meu fragment:

public class MapaFragment extends SupportMapFragment {

@Override
public void onResume() {
    super.onResume();
    GoogleMap mapa = getMap();
}

}

Meu problema é que o getMap() está depreciado, e não entendi direito como se usa o getMapAsync.
Outra dúvida é, como posso fazer pro mapa ter posição inicial ser a posição do usuário e atualizar essa posição conforme ele anda?
Desde já agradeço.

Criando pelo xml na minha opnião acho mais facil, segue:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="pacote.MainActivity" >

    
    <fragment
        android:id="@+id/mapFrag"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</LinearLayout>

Criado o xml abra sua Actvity:

public class TesteActvity extends FragmentActivity implements OnMapReadyCallback {
	private SupportMapFragment mapFrag;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_teste_actvity);
		
		GoogleMapOptions opcoes = new GoogleMapOptions();
		opcoes.zOrderOnTop(true);
		
		mapFrag = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapFrag);
		mapFrag.getMapAsync(this);
		
	}

	@Override
	public void onMapReady(GoogleMap googleMap) {
		GoogleMap map = googleMap;
		map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
		
		//......
		
	}
}
1 curtida

Não foi uma solução pra todo o problema, mas pelo menos ajudou com a exibição do mapa!
Brigadão ai!