如何在全景/照片球模式下直接打开相机?

Posted

技术标签:

【中文标题】如何在全景/照片球模式下直接打开相机?【英文标题】:How to open camera directly in panorama/photosphere mode? 【发布时间】:2013-02-28 22:28:09 【问题描述】:

我在 android 4.2 Jelly Bean 中遇到问题。

如何从我的应用程序中打开相机,默认为全景/360 全景照片模式?

我在grepcode 和Camera.Parameters 中进行了很多搜索,但似乎没有任何帮助。除了视频和图像之外,有人有任何线索可以在全景模式下打开相机吗?

【问题讨论】:

使用此意图操作“INTENT_ACTION_STILL_IMAGE_CAMERA” 【参考方案1】:

没有标准的方法来做到这一点。 AFAIK Panorama、Photoshere 是 Gallery3d 的专有功能(由 Google 提供) 包 com.google.android.gallery3d。这取决于设备的固件。

在 ApplicationManifest.xml 中

<activity clearTaskOnLaunch="true" screenOrientation="0" name="com.google.android.apps.lightcycle.ProtectedPanoramaCaptureActivity" theme="resource_id:0x1030007" configChanges="1184" label="resource_id:0x7f0a00b2" windowSoftInputMode="35" taskAffinity="com.google.android.camera">
<intent-filter>
<action name="android.intent.action.MAIN">
</action>
</intent-filter>
</activity>

我已尝试从我的应用程序启动此活动

    Intent res = new Intent();
    String mPackage = "com.google.android.gallery3d";
    String mClass = "com.google.android.apps.lightcycle.ProtectedPanoramaCaptureActivity";

    res.setComponent(new ComponentName(mPackage,mClass));
    startActivity(res);

但它会在相机应用程序中引发 NullPointerException。

【讨论】:

我正在尝试使用此代码直接以全景模式打开相机,但清单代码给出错误,方法名称未定义。请问你能告诉我如何使用这个代码吗? 您无需将任何内容粘贴到清单中。使用java代码 但是你必须在清单中声明 ProtectedPanoramaCaptureActivity...你是如何编译包 com.google.android.apps.lightcycle...?【参考方案2】:

我也希望在我的应用程序中打开 photosphere 相机,或者至少在普通相机中显示 photosphere 选项。我搜索了很多,但没有找到任何解决方案。

我认为我们没有任何解决方案来打开 photosphere 相机。我们需要等待下一个 Android API 版本。

How to open photosphere camera?

【讨论】:

【参考方案3】:

您可以使用以下代码打开所有默认相机功能

 Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
    startActivity(intent);

【讨论】:

以上是关于如何在全景/照片球模式下直接打开相机?的主要内容,如果未能解决你的问题,请参考以下文章

Unity 怎么用图片做全景图?

基于全景照片和场景模型计算导出纹理贴图

如何使用额外的选项(如全景)实现相机功能?

如何在应用程序中启用 iOS 6.0 全景相机?

怎么使用全景拍摄?

海康360°如何调自动训拍