Java Android清单权限问题
我跟随在线教程学习如何创建一个简单的应用程序,可以打开和关闭手机的摄像头Java Android清单权限问题,java,android,permissions,crash,manifest,Java,Android,Permissions,Crash,Manifest,我跟随在线教程学习如何创建一个简单的应用程序,可以打开和关闭手机的摄像头 <manifest....> <uses-permission android:name = "android.permission.CAMERA"/> <uses-feature android:name = "android.hardware.camera"/> </manifest> 另一件奇怪的事:当我安装应用程序时,没有关于需要什么权限的详细信息 该应用
<manifest....>
<uses-permission android:name = "android.permission.CAMERA"/>
<uses-feature android:name = "android.hardware.camera"/>
</manifest>
另一件奇怪的事:当我安装应用程序时,没有关于需要什么权限的详细信息
该应用程序可以在您的手机上访问以下内容:“而且什么都没有。(尽管教程中显示了应用程序需要摄像头许可的权限。)
谁能帮帮我吗,谢谢
setContentView(R.layout.activity_main);
Button aprinde =(Button)findViewById(R.id.aprinde);
//Button sting = (Button)findViewById(R.id.sting);
cameraObj = Camera.open();
aprinde.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view){
Camera.Parameters cameraParams = cameraObj.getParameters();
cameraParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
cameraObj.setParameters(cameraParams);
cameraObj.startPreview();
}
} );
你的应用程序正在崩溃,因为你在没有背面摄像头的模拟器上运行它
Camera#open()的文档
:
创建一个新的摄影机对象以访问屏幕上的第一个后向摄影机
装置。如果设备没有背面摄像头,则返回
空
您可以通过检查null
来修复崩溃
public void onClick(View v) {
if (cameraObj == null) {
return;
}
Camera.Parameters cameraParams = cameraObj.getParameters();
cameraParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
cameraObj.setParameters(cameraParams);
cameraObj.startPreview();
}
您还应该注意setParameters
,因为如果设备没有闪存,这也可能会崩溃
public void onClick(View v) {
if (cameraObj == null) {
return;
}
Camera.Parameters cameraParams = cameraObj.getParameters();
if (cameraParams.getFlashMode() == null) {
return;
}
cameraParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
cameraObj.setParameters(cameraParams);
cameraObj.startPreview();
}
请发布崩溃的堆栈跟踪。如果您是通过ADB(Android Studio)安装应用程序,则不会提示您批准权限。好的,
MainActivity.java
的第33行是什么?可能的解决方案?@Jonathan727第26行:cameraObj=Camera.open();当然应用程序正在启动。我做了两个钮扣。一个是这个,那个崩溃了,另一个什么也不做。我正在emulator和手机上运行应用程序。两个都要撞车。
public void onClick(View v) {
if (cameraObj == null) {
return;
}
Camera.Parameters cameraParams = cameraObj.getParameters();
if (cameraParams.getFlashMode() == null) {
return;
}
cameraParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
cameraObj.setParameters(cameraParams);
cameraObj.startPreview();
}