2017-08-25 541 views
2

即时通讯录试图从录音机录制声音,但在Android 6+我得到权限错误。 我添加了询问权限的代码(有3个权限询问)2工作,但是 CAPTURE_AUDIO_OUTPUT显示错误。它只是不要求我批准许可。在日志中它只是“未授予” 任何人都知道什么问题?CAPTURE_AUDIO_OUTPUT没有在运行时询问权限

public static boolean PermissionCheck(Activity context, String permission, int code) { 
     boolean state = false; 
     int permissionCheck = ContextCompat.checkSelfPermission(context, 
       permission); 
     if (permissionCheck != PackageManager.PERMISSION_GRANTED) { 
      ActivityCompat.requestPermissions(context, new String[]{permission}, code); // define this constant yourself 
     } else { 
      // you have the permission 
      return true; 
     } 
     return state; 
    } 

case CAPTURE_AUDIO_OUTPUT_CONSTANT: { 
       if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
        Logger.e("CAPTURE PERMISSION GRANTED"); 
        INIT(); 
       } else { 
        Logger.e("CAPTURE PERMISSION NOT GRANTED"); 
        finish(); 
       } 
       return; 
      } 

错误

W/PackageManager: Not granting permission android.permission.CAPTURE_AUDIO_OUTPUT to package blabla_package (protectionLevel=18 flags=0x3848be46) 

清单中

<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT"/> 
+0

@ Hetfieldan24我有清单 – Peter

回答

2

CAPTURE_AUDIO_OUTPUT不是dangerous申请,因此,不与运行权限系统工作。 CAPTURE_AUDIO_OUTPUT拥有android:protectionLevel="signature|privileged",因此只能由安装在特权(又名,系统)分区或由平台签名密钥签名的应用程序持有。

+0

和我如何可以在6 +上录音?只需添加标志键到应用程序? – Peter

+0

@Peter:'CAPTURE_AUDIO_OUTPUT'不适用于使用麦克风录制声音。这是'RECORD_AUDIO'权限。 – CommonsWare