请求用户允许录音、读取话机状态和前台业务?



我正在构建一个音频应用程序,我有这个在我的清单:

<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.vending.BILLING" />
例如,我注意到在kitkat中,我的应用程序工作得很好。但是在android 10中,它没有麦克风和电话的权限(同时应用程序chashes, permission denial: start前台需要android权限foreground_service)。

所以我在清单中添加:<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

现在我应该在mainactivity中做什么?我需要请求用户允许录制音频,读取电话状态和前景吗?

我试试这个:

private final String [] permissions = {
"android.permission.RECORD_AUDIO",
"android.permission.READ_PHONE_STATE",
"android.permission.FOREGROUND_SERVICE"
};
int requestCode = 200;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(permissions, requestCode);
}

正确吗?

下面的代码将向用户请求权限。一旦用户接受不允许,弹出对话框。

if (ActivityCompat.checkSelfPermission(
requireContext(),
Manifest.permission.RECORD_AUDIO
)
!= PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(
(context as Activity?)!!,
arrayOf(Manifest.permission.RECORD_AUDIO),
1
)
}

最新更新