Abrindo o StreetView do meu aplicativo em um local específico
Estou tentando abrir o Google StreetView no modo Panorama no meu aplicativo Android.
Eu realmente quero abrir o Google StreetView e não o Google Maps, porque eu quero usá-lo com um aplicativo de Realidade Virtual que usa um VR Glass, que usa modo estéreo e panorama. O modo panorama que eu quero é assim:https://youtu.be/3mQKGEnWxIw
O código a seguir abre o aplicativo StreetView:
PackageManager pm = this.getPackageManager();
Intent intent = pm.getLaunchIntentForPackage("com.google.android.street");
startActivity(intent);
Mas ele abre na tela padrão.
EDIT 1:
Descobri como abrir o panorama Atividade do Street View. Primeiro, listei as atividades disponíveis no aplicativo:
void listAppActivities(String packagename) {
PackageManager pManager = getPackageManager();
Intent startIntent = new Intent();
startIntent.setPackage(packagename);
List<ResolveInfo> activities = pManager.queryIntentActivities(startIntent, 0);
for (ResolveInfo ri : activities) {
System.out.println("getAppActivities::nome::" + ri.activityInfo.name);
}
}
Então usei a Atividade com.google.vr.app.StreetViewApp.StreetViewApp. Posso iniciar a Atividade Panorama do StreetView diretamente usando este código:
void openStreetView() {
String packagename = "com.google.android.street";
PackageManager pm = this.getPackageManager();
Intent intent = pm.getLaunchIntentForPackage(packagename);
intent.setComponent(new ComponentName(packagename, "com.google.vr.app.StreetViewApp.StreetViewApp"));
startActivity(intent);
}
Mas ainda não sei como passar os parâmetros de localização para o StreetView. Como eu posso fazer isso?
Eu testei usando URI:
Uri gmmIntentUri;
//gmmIntentUri = Uri.parse("geo:"+lat+","+lng); // Test1
gmmIntentUri = Uri.parse("google.streetview:cbll="+lat+","+lng); // Test2
//gmmIntentUri = Uri.parse("http://maps.google.com/maps?ll="+lat+","+lng); // Test3
intent.setData(gmmIntentUri);
E usando Intent.putExtra:
intent.putExtra("cbll", lat+","+lng);
intent.putExtra("args", "cbll="+lat+","+lng);
intent.putExtra("lat", new Double(lat));
intent.putExtra("long", new Double(lng));
intent.putExtra("lng", new Double(lng));
Mas sem sucesso. Alguém sabe como passar os parâmetros de localização para o StreetView App no modo Panorama?
EDIT 2:
Descobri que, se eu usar um link realçado do Street View ou um local em destaque, é possível abrir o Street View no modo Panorama, passando a intenção do URI. Eu testei os seguintes links:
https://www.google.com/streetview/#christmas-island/ethel-beach-2 https://www.google.com/streetview/#russian-landmarks/terskol-1 https://www.google.com/streetview/#day-of-the-dead-in-mexico/ofrenda-dia-de-muertos-zocalo
Mais pode ser encontrado aqui:https://www.google.com/streetview/
Mas ainda não sabe como passar um local genérico.