Panorama APIを使用してパノラマ画像を表示しようとしていますが、画像を起動しようとすると、PanoramaResult.getViewerIntent()
メソッドはnullを返し、nullにはなりません。Panorama APIの目的
PanoramaResultの結果である:
Status{statusCode=SUCCESS, resolution=null}
とコード:
private GoogleApiClient gacClient;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gacClient = new GoogleApiClient.Builder(this, this, this)
.addApi(Panorama.API)
.build();
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent,CAPTURE_TERRAT_GALLERY_ACTIVITY_REQUEST_CODE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
int columnIndex;
Cursor cursor;
String imagenADecodificar;
if (requestCode==CAPTURE_TERRAT_GALLERY_ACTIVITY_REQUEST_CODE && resultCode==RESULT_OK && data!=null){
fileUri = data.getData();
String [] rutaColumna= {MediaStore.Images.Media.DATA};
cursor= getContentResolver().query(fileUri,rutaColumna,null,null,null);
cursor.moveToFirst();
columnIndex = cursor.getColumnIndex(rutaColumna[0]);
imagenADecodificar = cursor.getString(columnIndex);
fileUri = Uri.parse(imagenADecodificar);
cursor.close();
}
}
@Override
public void onStart() {
super.onStart();
gacClient.connect();
}
@Override
public void onConnected(Bundle connectionHint) {
Panorama.PanoramaApi.loadPanoramaInfo(gacClient, fileUri).setResultCallback(
new ResultCallback<PanoramaApi.PanoramaResult>() {
@Override
public void onResult(PanoramaApi.PanoramaResult result) {
Intent i;
if (result.getStatus().isSuccess() && (i = result.getViewerIntent()) != null) {
startActivity(i);
} else {
// Handle unsuccessful result
}
}
});
}
@Override
public void onConnectionSuspended(int cause) {
// Handle connection being suspended
}
@Override
public void onConnectionFailed(ConnectionResult status) {
// Handle connection failure.
}
@Override
public void onStop() {
super.onStop();
gacClient.disconnect();
}
}