标签: android-camera

Android M Camera Intent +权限错误?

我正在尝试让我的应用程序为新的Android M权限更改做好准备,并发现了一些奇怪的行为.我的应用程序使用相机意图机制允许用户从相机获取图片.但是在另一个活动中需要使用具有Camera权限的摄像头本身(因为需要这个的库依赖card.io).

但是,当我尝试启动Camera意图时,只需要相机意图的活动中的M我看到以下崩溃(如果我从Manifest中删除了Camera权限,则不会发生这种情况),

> 09-25 21:57:55.260 774-8053/? I/ActivityManager: START u0
> {act=android.media.action.IMAGE_CAPTURE flg=0x3000003
> pkg=com.google.android.GoogleCamera
> cmp=com.google.android.GoogleCamera/com.android.camera.CaptureActivity
> (has clip) (has extras)} from uid 10098 on display 0 09-25
> 21:57:55.261 774-8053/? W/ActivityManager: Permission Denial: starting
> Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3000003
> pkg=com.google.android.GoogleCamera
> cmp=com.google.android.GoogleCamera/com.android.camera.CaptureActivity
> (has clip) (has extras) } from null (pid=-1, uid=10098) with revoked
> permission android.permission.CAMERA 09-25 21:57:55.263 32657-32657/?
> E/ResolverActivity: Unable to launch as uid 10098 package
> com.example.me.mycamerselectapp, while running in android:ui 09-25
> …
Run Code Online (Sandbox Code Playgroud)

android android-camera android-camera-intent android-permissions android-6.0-marshmallow

65
推荐指数
4
解决办法
5万
查看次数

相机活动返回null android

我正在构建一个应用程序,我希望通过默认的相机活动捕获图像并返回到我的活动并在ImageView中加载该图像.问题是相机活动总是返回null.在我的onActivityResult(int requestCode, int resultCode, Intent data)方法中,我得到数据null.这是我的代码:

public class CameraCapture extends Activity {

    protected boolean _taken = true;
    File sdImageMainDirectory;
    Uri outputFileUri;

    protected static final String PHOTO_TAKEN = "photo_taken";
    private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        try {

            super.onCreate(savedInstanceState);   
            setContentView(R.layout.cameracapturedimage);
                    File root = new File(Environment
                            .getExternalStorageDirectory()
                            + File.separator + "myDir" + File.separator);
                    root.mkdirs();
                    sdImageMainDirectory = new File(root, "myPicName");



                startCameraActivity();

        } catch (Exception e) {
            finish();
            Toast.makeText(this, "Error occured. Please try again …
Run Code Online (Sandbox Code Playgroud)

android android-camera

60
推荐指数
3
解决办法
7万
查看次数

从相机拍摄照片无需预览

我正在编写一个Android 1.5应用程序,它在启动后启动.这是一个Service,应该拍照没有预览.此应用程序将记录某些区域的光密度.我能够拍照,但照片是黑色的.

经过长时间的研究,我遇到了一个关于它的bug线程.如果您不生成预览,则图像将为黑色,因为Android相机需要预览才能设置曝光和对焦.我创建了一个SurfaceView和听众,但onSurfaceCreated()事件永远不会被解雇.

我想原因是,表面没有在视觉上创造.我还看到了静态调用相机的一些例子,MediaStore.CAPTURE_OR_SOMETHING它们拍摄照片并用两行代码保存在所需的文件夹中,但它也没有拍照.

我是否需要使用IPC并bindService()调用此功能?或者是否有另一种方法来实现这一目标?

android android-service android-camera

57
推荐指数
7
解决办法
7万
查看次数

控制相机以纵向拍摄照片不会旋转最终图像

我正在尝试控制Android相机在肖像应用程序中拍照,但是当我保存图片时,它是在风景中.我用setCameraDisplayOrientation()方法将图像旋转了90个等级 ,但是不起作用.

然后我发现这个职位,但TAG_ORIENTATIONIS 0(不确定).如果我捕获此值并应用旋转值,则也不起作用.

我如何拍摄肖像并以良好的方向保存?

    /** Initializes the back/front camera */
private boolean initPhotoCamera() {
    try {
        camera = getCameraInstance(selected_camera);

        Camera.Parameters parameters = camera.getParameters();
   //           parameters.setPreviewSize(width_video, height_video);
   //           parameters.set("orientation", "portrait");
   //           parameters.set("rotation", 1);
   //           camera.setParameters(parameters);


        checkCameraFlash(parameters);

   //            camera.setDisplayOrientation( 0);
        setCameraDisplayOrientation(selected_camera, camera);


        surface_view.getHolder().setFixedSize(width_video, height_video);


        LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(width_video, height_video);
        surface_view.setLayoutParams(lp);

        camera.lock();

        surface_holder = surface_view.getHolder();
        surface_holder.addCallback(this);
        surface_holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

        setPreviewCamera();

    } catch (Exception e) {
        Log.v("RecordVideo", "Could not initialize the Camera");
        return false;
    }
    return true; …
Run Code Online (Sandbox Code Playgroud)

android android-camera android-orientation

57
推荐指数
4
解决办法
5万
查看次数

如何自动对焦Android相机?

我想在相机保持不动时自动对焦Android相机.我正在寻找教程或示例如何做或至少小样本,显示我可以用来挂钩这些事件的类.

android android-camera

54
推荐指数
4
解决办法
9万
查看次数

在Android中使用相机手电筒

我正试图在小部件中使用相机LED手电筒.我已经找到了关于这个主题的几个主题(即后面提到的那个 ......),现在我正试图控制灯光使用:

Camera cam = Camera.open();     
Parameters p = cam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.release();
Run Code Online (Sandbox Code Playgroud)

在AndroidManifest.xml中尝试了不同的权限,目前我有:

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />
Run Code Online (Sandbox Code Playgroud)

我正在Galaxy Tab上测试这个,因为我手头没有任何其他Android设备:灯没亮.所以我现在有几个问题:

  1. 有没有办法测试仿真器中的led灯行为?
  2. 我在这里做错了吗?
  3. 根据这个处理相同问题的问题,它在Galaxy Tab上的工作方式不同.怎么样?
  4. 最后,如果它的工作方式不同,我开始怀疑它是否仅仅是Galaxy Tab或其他设备是否也使用不同的方法.那时很难测试,对我来说似乎很奇怪.

感谢您的任何见解!

顺便说一句,我很快就通过快速设置进行了测试,这里提到了几次.手电筒也不能用于快速设置.

请注意,Galaxy Tab stil使用android 2.2.我看到2.2和2.3之间有一些变化.

评论:我知道它必须以某种方式工作,因为我发现市场上的其他应用程序与Galaxy Tab完美配合.

评论2:如果我设置了cam.setParameters(p); 并使用getFlashMode()直接向相机询问当前状态,它正确返回FLASH_MODE_TORCH.但是,如果我释放相机并重新打开它,它将返回FLASH_MODE_OFF.这几乎就像Camera对象知道了请求,但并没有真正将它传递给硬件!?

-

康斯坦丁评论后,我删除了cam.release(); 部分.他是对的,如果你松开相机,设置就不会持续存在.如果再次使用cam.open(),您将获得一个关闭灯的新实例.尽管如此,光还没有在星系标签上工作.所以,如果你试图通过一个小部件来控制它,我想很难保持亮点.一旦后台服务完成,相机对象就会自动释放,因此灯会再次关闭.我的问题仍然存在,特别是为什么相机不能在一开始就打开.

android android-camera flashlight

53
推荐指数
4
解决办法
8万
查看次数

android java lang runtimeexception无法连接到摄像头服务

我目前正致力于手电筒开/关.我收到此错误java.lang.RuntimeException: Fail to connect to camera service我不知道为什么会发生此错误.我提到了许多解决方案,但我的问题仍未解决.当手电筒打开时,不会发生错误,但是当手电筒关闭时则会发生错误.

我的代码主要代码.

我的清单许可:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus"/>
Run Code Online (Sandbox Code Playgroud)

android android-camera flashlight

51
推荐指数
6
解决办法
9万
查看次数

Android图像调整大小和保留EXIF数据(方向,旋转等)

如果您的Android应用使用设备的相机拍照,然后调整它的大小(这是很常见的,以减少上传大小),你可能没有意识到,这个调整操作的EXIF元数据.

这可能会导致问题,尤其是当相关设备依赖"方向"标签正确显示图像时.

不同的Android设备以不同的方式处理相机/图像旋转 - 我信赖的'Nexus One似乎总是在捕获后立即旋转图像,因此文件的本机内容在查看时始终是"直立的".然而,其他设备(特别是我测试中的三星手机)不会旋转图像文件的内容 - 而是设置exif'Orientation'标签.无论何时稍后显示图像,相关图像代码都应检测到方向"标签"的存在并适当地旋转图像.但是如果您对图像进行了任何位图处理并将其保存到新文件中,那么所有exif数据都将丢失.

除了Orientation数据之外,您还可能会丢失其他有价值的元数据,例如品牌/型号等.

这使我困惑了几个星期(图像在电话库中显示时显示正常,但随后到达我的服务器时方向错误且没有明显的元数据).我在这里添加这个自我提问来帮助别人.这篇博客文章非常有用:

http://vikaskanani.wordpress.com/2011/07/17/android-re-size-image-without-loosing-exif-information/

android exif image android-camera

49
推荐指数
3
解决办法
2万
查看次数

将效果应用于相机拍摄的视频帧

我注意到android.media.effect开发人员可以在api级别17中使用.还有一个示例'Helloeffect'供开发人员渲染.但是,样本专注于图片.我读了效果类的文件,发现它必须对GL纹理应用效果.我是新手opengl,我想对相机拍摄的视频帧应用效果.
任何人都可以给我一些提示吗?谢谢!

android android-camera android-4.2-jelly-bean

48
推荐指数
1
解决办法
1310
查看次数

FileProvider不使用相机

我正在尝试将Camera App存储到我的内部存储器中.我也理解第三方应用程序无法访问我的应用程序的内部存储,我们可以通过公开内部目录来实现FileProvider.我在这里遵循了指南:

AndroidManifest.xml用以下方式指定我:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.stackoverflow.test.camerawithfileprovider" >

    <application>
        <activity
            ...
        </activity>

        <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="com.stackoverflow.test.camerawithfileprovider.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true" >
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_provider_path" />
        </provider>
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

我创建了一个名为xml文件file_provider_path.xml/res/xml/:

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <files-path name="image_capture" path="public/" />
</paths>
Run Code Online (Sandbox Code Playgroud)

这就是我创建和调用Camera Intent的方法:

private static final int CAMERA_REQUEST_CODE = 5000;
private static final String CAMERA_FP_AUTHORITY = "com.stackoverflow.test.camerawithfileprovider.fileprovider";

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

Context context = MainActivity.this;
File imagePath = new File(context.getFilesDir(), …
Run Code Online (Sandbox Code Playgroud)

android android-camera android-fileprovider

47
推荐指数
1
解决办法
2万
查看次数