2016-12-26 1 views
0

Мое приложение не может открыть переднюю камеру на галактике s6, я не знаю, почему PLS поможет! В манифесте я уже добавляю это. Manifest:разрешение камеры неактивно на sumsung galaxy s6 android V.6

<?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 v6 его косяка открытой передней камеры на всех, но на другой андроид версии 4-5 хорошо. Что мне делать?

+0

вы можете оставить журнал – Mrinmoy

+0

насчет вашей задней камеры? Открывается ли нормально (камера заднего вида)? –

ответ

0

для Android v.6 формы разрешения mamifest не хватает ....

На всех версии Android, приложение должно объявить как нормальные и опасные разрешения, необходимые в его манифесте приложения, как описано в Объявление разрешений. Тем не менее, эффект от этого заявления отличается в зависимости от версии системы и целевой уровень SDK вашего приложения:

  • Если устройство работает под управлением Android 5.1 или ниже, или вашего приложения целевой SDK является 22 или ниже: Если вы перечислите опасное разрешение в вашем манифесте , пользователь должен предоставить разрешение при установке приложения ; если они не предоставляют разрешения, система вообще не устанавливает приложение.

  • Если устройство работает под управлением Android 6.0 или выше, а целевой SDK приложения - 23 или выше: приложение должно отображать разрешения в манифесте и должно запрашивать каждое опасное разрешение, в котором оно нуждается, пока приложение запущено , Пользователь может предоставлять или отклонять каждое разрешение, и приложение может продолжать работать с ограниченными возможностями , даже если пользователь отрицает запрос на разрешение.

Таким образом, вам нужно получить разрешение от пользователя во время выполнения для списка файлов сгенерированных форм формы во время установки. Он проверяет разрешение только один раз во время выполнения.

Вы можете использовать следующий код ... что я сделал для вас

Сначала объявить переменную как этот

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; 
} 
} 

Тогда где вы хотите, чтобы открыть камеру просто вызвать метод checkPersmission(), как этот

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

Fell спросить, если у вас есть какие-либо вопросы ...