如何在全景/照片球模式下直接打开相机?
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);
【讨论】:
以上是关于如何在全景/照片球模式下直接打开相机?的主要内容,如果未能解决你的问题,请参考以下文章