AndroidアプリのWebView上でマイクのアクセス許可を取得する
以下のようなマイクを使うWebサイトをAndroidアプリに埋め込む場合、
マイクを利用するためにWebViewとアプリの両方で権限を取得する必要がある。
code:AndroidManifest.xml
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
code:kotlin
private var webView = binding.webView // WebViewを表示するレイアウト
const val PERMISSIONS_REQUEST_RECORD_AUDIO = 0
private fun loadWebPage() {
webView.loadUrl(BuildConfig.AVATAR_BASE_URL, headers)
}
private fun setupWebView() {
webView.webChromeClient = object : WebChromeClient() {
override fun onPermissionRequest(request: PermissionRequest) {
val requestedResources = request.resources
for (resource in requestedResources) {
if (resource == PermissionRequest.RESOURCE_AUDIO_CAPTURE) {
if (checkSelfPermission(android.Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED) {
request.grant(arrayOf(PermissionRequest.RESOURCE_AUDIO_CAPTURE))
} else {
requestPermissions(
arrayOf(android.Manifest.permission.RECORD_AUDIO),
PERMISSIONS_REQUEST_RECORD_AUDIO
)
}
return
}
}
request.deny()
}
}
}
}