camera 权限不是活跃于三星银河 s6 android 五.6

标签: Java Android
发布时间: 2017/3/19 19:12:58
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我的应用程序不能打开前面 camera 在银河 s6,我不知道为什么请帮助 !在 manifest 已添加。 Manifest :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.lenovo.somsong">
<!-- ขออนุญาติเปิดกล้อง -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- ขออนุญาติใช้ที่จัดเก็ฐข้อมูล -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera" />
<!-- auto focus -->
<uses-feature android:name="android.hardware.camera.autofocus" />
<!--code ที่ใช้ในการ detcet ใบหน้า-->
<meta-data
    android:name="com.google.android.gms.vision.DEPENDENCIES"
    android:value="face" />
<!--รูปของ application -->
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity
        android:name=".Home"
       >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <!--code เพื่อเปิดไปยังหน้าต่างๆ ทั้งหมด 19 หน้า เป็นการ run activity -->
    <activity android:name=".Ssreccom"/>
    <activity android:name=".Pop"/>
    <activity android:name=".Face"/>
    <activity android:name=".Kom"/>
    <activity android:name=".Ssdesign"/>
    <activity android:name=".Derectang"/>
    <activity android:name=".Popwo"/>
    <activity android:name=".Popman"/>
    <activity android:name=".Diamond"/>
    <activity android:name=".Rec"/>
    <activity android:name=".Re"/>
    <activity android:name=".Dere"/>
    <activity android:name=".Myss"/>
    <activity android:name=".Camm1"/>
    <activity android:name=".Dekom"/>
    <activity android:name=".Camw1"/>
    <activity android:name=".Dedai"/>
    <activity android:name=".Tryss"/>
</application>

所以,当我在 S6 上运行的应用程序 android v6 其不能打开前面 camera 在所有,但在另一个 android 版本 4-5 是罚款。 我该怎么办?

解决方法 1:

android 五.6 权限形成 mamifest 不够......

在所有版本的 Android ,您的应用程序需要申报正常和危险的权限,它需要在其应用程序 manifest ,声明的权限中所述。然而, effect 的声明是不同的系统版本和您的应用程序的目标 SDK 等级︰

  • 如果在设备运行时 Android 5.1 或更低或您的应用程序的目标 SDK 是 22 或更低︰ 如果在非常危险的权限列表中添加您 manifest ,用户已授予该权限,当他们安装的应用程序; 如果他们不做授予了权限,系统并不安装该应用程序。

  • 如果在设备运行时 Android 6.0 或更高,和您的应用程序的目标 SDK 是 23 或更高︰ 应用程序已经列出的权限在 manifest ,和它必须请求每个危险的权限,它需要运行应用程序时。用户可以授予或拒绝每个权限,和该应用程序可以继续运行能力有限,即使用户拒绝的权限请求。

所以你需要从上运行的用户获得的权限 time 权限生成窗体列表中为 manifest 上安装的文件 time 。它已检查的权限只有一次运行 time

您可以使用下面的代码......我为你这样做

首先声明一个变量,像这样

static final int  REQUEST_CAMERA_PERMISSION = 1;

然后写方法和像这样的重写方法...

private boolean checkPermission(){    
   if (android.os.Build.VERSION.SDK_INT >= 23 &&
   ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)== 
   PackageManager.PERMISSION_DENIED) {
   requestPermissions(new String[]{Manifest.permission.CAMERA}, REQUEST_CAMERA_PERMISSION);
      return false;
   }else{
      return true;
   }
}

 @Override
 public void onRequestPermissionsResult(int requestCode, String[]   permissions, int[] grantResults) {
switch (requestCode) {
    case REQUEST_LOCATION_CAMERA:
         if (grantResults[0] == PackageManager.CAMERA) {
                Log.d(TAG,"Premission granted");
         }else {
                Log.d(TAG,"Premission denied");
         }
         break;
}
}

然后要完成的是打开 camera 只需调用 checkPersmission() 方法像这样

if(checkPermission()){
   //your open camera code write hare
}

下跌免费问是否你有任何问题......

赞助商