我正在尝试使用全景 API 查看全景图像,但是当我尝试尝试启动图像时,该PanoramaResult.getViewerIntent()
方法返回 null 并且不应为 null。
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();
}
}