我试图做一个简单的应用程序,使用系统相机应用程序来拍照。我已经在android版本6中测试了我的应用程序,我的应用程序成功打开了设备的摄像头。但在一些android v6设备(如三星Galaxy A3)中,我遇到了以下安全异常:
java.lang.SecurityException:
at android.os.Parcel.readException (Parcel.java:1621)
at android.os.Parcel.readException (Parcel.java:1574)
at android.app.ActivityManagerProxy.startActivity (ActivityManagerNative.java:3182)
at android.app.Instrumentation.execStartActivity (Instrumentation.java:1541)
at android.app.Activity.startActivityForResult (Activity.java:4298)
at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult (BaseFragmentActivityJB.java:50)
at android.support.v4.app.FragmentActivity.startActivityForResult (FragmentActivity.java:79)
at android.app.Activity.startActivityForResult (Activity.java:4245)
at android.support.v4.app.FragmentActivity.startActivityForResult (FragmentActivity.java:859)
at iforest.photogps.MainActivity.captureImage (MainActivity.java:203)
at iforest.photogps.MainActivity.access$000 (MainActivity.java:73)
at iforest.photogps.MainActivity$1.onClick (MainActivity.java:130)
at android.view.View.performClick (View.java:5721)
at android.widget.TextView.performClick (TextView.java:10930)
at android.view.View$PerformClick.run (View.java:22620)
at android.os.Handler.handleCallback (Handler.java:739)
at android.os.Handler.dispatchMessage (Handler.java:95)
at android.os.Looper.loop (Looper.java:148)
at android.app.ActivityThread.main (ActivityThread.java:7331)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1120)
我已经在我的代码中添加了权限检查:
if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED
&& ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
&& ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
//TO do here if permission is granted by user
} else {
//ask for permission if user didnot given
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{Manifest.permission.CAMERA,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0);
}
}
稍后我称之为捕获图像:
private void captureImage() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File photoFile = null;
try {
photoFile = createImageFile();
}
catch (IOException e) {
e.printStackTrace();
}
//fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
String authorities = getApplicationContext().getPackageName() + ".provider";
Uri imageUri = FileProvider.getUriForFile(this, authorities, photoFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
// start the image capture Intent
startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE); <-- line 203
}
从日志中,我看到captureImage第203行调用了startActivityForResult。既然我已经要求摄像机的权限,为什么我会获得SecurityException以在特定设备三星Galaxy A3-Android 6中打开摄像机?在具有相同版本的其他设备中,打开摄像机时不会发生错误。
我正在尝试制作一个简单的应用程序,它使用系统相机应用程序来拍照
没有单一的“系统摄像机应用”。您的代码将启动用户想要使用的任何相机应用程序,在大约10000个Android设备型号和大约20亿个Android设备上,将有数百个这样的应用程序。
既然我已经请求摄像头的权限,为什么我在特定设备三星Galaxy A3 -Android 6中打开摄像头时会出现安全异常?
替换:
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
使用:
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION|Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
看看这是否有帮助。
当我捕获照片时,在某些设备中,它会以景观模式存储在某些设备中,它会存储肖像。我想让图像在肖像模式无论如何。为此,我尝试获取图像的数据,并相应地将其旋转到肖像模式。但在一些设备,如三星,VIVO的方向值得到“0”。我不知道该怎么处理那个值。如果我90,那么一些设备将解决此问题,而另一些设备将向上保存照片。 我从Xamarin那里得到这个主意。Andoid图像旋转。但不知怎的,我不能再继续下去了。会有
Camera元素一个关键特性就是可以用来拍照。我们将在一个简单的定格动画程序中使用到它。在这章中,你将学习如何显示一个视图查找器,截图和追踪拍摄的图片。 用户界面如下所示。它由三部分组成,背景是一个视图查找器,右边有一列按钮,底部有一连串拍摄的图片。我们想要拍摄一系列的图片,然后点击Play Sequence按钮。这将回放图片,并创建一个简单的定格电影。 相机的视图查找器部分是在VideoOutp
更新:这看起来和这个有关:来自Android camera2 API的图像数据在Galaxy S5上翻转和压扁--我认为这是一个bug,因为Nexus 5/6工作正常,它没有任何意义,需要获得完整的传感器大小,然后手动裁剪达到所需的纵横比,不如不使用“支持的”输出大小以及! 问题: > 使用Camera2 API获取相机的特性,并提取适合MediaCodeC.Class的输出大小 使用合适的相机输
我已经开发了一个应用程序来拍摄一张照片并保存在画廊里。我在网上搜索过,我能练习的最简单的方法就是使用。下面是从相机上拍照的代码。注意,我在这个类中使用的是fragment。 获取捕获的图像并将其转换为字符串 我将字符串保存到全局变量中,以便其他活动可以访问它。在另一个活动中,我有一个按钮,通过访问图像字符串将图像保存到文件夹/图库中。 它可以将图像保存到文件夹/图库中......但是图像质量很低.
在节点中。在js服务器上,捕获SIGTERM和捕获SIGINT有什么区别吗? 我认为进程不应该能够防止SIGINT关闭? 我是否能够捕获两个信号并阻止退出?我的实验表明答案是肯定的,但从我所读到的内容来看,SIGINT总是假设关闭一个进程。 或者我把SIGINT和SIGKILL混淆了?也许SIGKILL是我无法恢复的信号? 捕捉这些信号当然可以让我优雅地关机: 我想我把SIGINT和SIGKILL
我已经被困在相机里6天了,但没有得到任何适当的解决方案。当我通过相机意图捕获图像时,图像正在旋转。我试图修复方向,但有时它没有在onActivityResult()中给出位图值。当我尝试在ImageView中设置图像时,它会显示一个黑色屏幕。这是我的密码请帮帮我- 我得到的图像在横向模式,但不是在potrait模式。相机预览在拍摄图像后自动旋转90度。