1

我正在尝试使用全景 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();
}

}

4

2 回答 2

0

返回 如果图像是全景图,则此参数不为空,并且将在启动时启动查看器。如果图像不是全景图,这将为空。

文档

您确定您的图像是有效的全景图吗?

于 2016-12-26T16:04:33.210 回答
0

我用 Nexus 5 的相机模式全景拍摄的图像

于 2016-12-26T16:18:39.860 回答