2016-11-08 3 views
1

android에 대한 사용 권한과 관련하여 다른 질문이 있습니다. 그러나 나는 아직도 조각을위한 해결책을 얻지 않았다. 왜 허가 대화 상자가 나타나지 않습니까? 또한 오류 로그를 표시하지 않습니다. 그것은 단지 나타나지 않습니다.조각에 대한 사용 권한

내가 수입을 필요로 그 이후 FragmentCompat를 사용하려는 해달라고 이것은 버전 내 최소 SDK입니다

을 android.app.Fragment. 의 minSdkVersion

import android.support.v4.app.Fragment; 


public class ComplaintFragment extends Fragment implements View.OnClickListener { 

    private void StartCamera(){ 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
     requestPermissions(new String[]{Manifest.permission.CAMERA}, PERMISSIONS_CAMERA); 
    } 
    else {OpenCamera();} 
    } 


    @Override 
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
    if(ActivityCompat.checkSelfPermission(getActivity(), permissions[0]) == PackageManager.PERMISSION_GRANTED) { 

     switch (requestCode) { 
      case PERMISSIONS_CAMERA: 
       OpenCamera(); 
       break; 
     } 
    } 
    } 

} 
+1

'Manifest.permission.CAMERA' 권한을'AndroidManiFest.xml' 파일에 선언 했습니까? – grantonzhuang

+0

예, 권한 – Nizzam

+0

을 선언했습니다. 'PERMISSIONS_CAMERA' int 변수는 255보다 작고 0보다 커야합니다. – grantonzhuang

답변

0

(16)는 어쩌면 u는,이 시도하여 maniferst

+0

나는 여전히 동일한 문제에 직면하고 있습니다. – Nizzam

0

<uses-permission android:name="android.permission.CAMERA" />을 복사하려고

1) 매니페스트에 카메라 권한을 부여 할 수 있습니다.

<uses-permission android:name="android.permission.CAMERA" /> 

2) 권한이 부여되었는지 확인하십시오.

if(ContextCompat.checkSelfPermission(this,android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { 
     requestPermissions(new String[]{android.Manifest.permission.CAMERA},1); 
           return; 
          } else { 
           oprnCamere(); 
          } 

3) 조각 클래스의 onActivityResult() 메소드에서 요청 권한의 결과를 처리합니다. (응용 프로그램 수준)이 코드를 삽입하여 build.gradle에서

@Override 
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
     super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
     switch (requestCode) { 
      case 0: { 
       if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
        //permission accepted. 
        openCamera() 
       } else { 
        //permission denied. 
       } 
       return; 
      } 
     } 
    } 
+0

잘못된 구문이 제공됩니다. –

+0

어느 쪽? @AlNoman –

+0

@AlNoman 감사합니다. –

0

(targetSdkVersion을 23)

defaultConfig { 
    applicationId "com.example.sampleproject" 
    minSdkVersion 9 
    targetSdkVersion 23 
    } 
+0

한 번 해보십시오. 작동하는지 여부를 알려주십시오. –

+0

여전히 작동하지 않습니다. – Nizzam

0

나는 onRequestPermissionsResult에 함수를 다시 작성. 시도해보십시오.

@Override 
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 

     switch (requestCode) { 
      case PERMISSIONS_CAMERA: 
       if (getActivity().checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) 
        //Camera permission grant 
        OpenCamera(); 
       else 
        Log.e("error","Oop something wrong with permission"); 
      break; 
    } 

this link도 확인하십시오. 그것은 귀하의 질문에 대한 답변을 도울 수 있습니다.

+0

상태가 점검인지 확인하려면 코드를 디버그하십시오. 허가가 부여됩니까? –