正在显示
3 个修改的文件
包含
41 行增加
和
0 行删除
| @@ -40,6 +40,7 @@ dependencies { | @@ -40,6 +40,7 @@ dependencies { | ||
| 40 | implementation 'androidx.appcompat:appcompat:1.2.0' | 40 | implementation 'androidx.appcompat:appcompat:1.2.0' |
| 41 | implementation 'androidx.core:core-ktx:1.3.2' | 41 | implementation 'androidx.core:core-ktx:1.3.2' |
| 42 | implementation "androidx.activity:activity-ktx:1.2.1" | 42 | implementation "androidx.activity:activity-ktx:1.2.1" |
| 43 | + implementation 'androidx.fragment:fragment-ktx:1.3.1' | ||
| 43 | implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0' | 44 | implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0' |
| 44 | implementation "androidx.viewpager2:viewpager2:1.0.0" | 45 | implementation "androidx.viewpager2:viewpager2:1.0.0" |
| 45 | implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${versions.androidx_lifecycle}" | 46 | implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${versions.androidx_lifecycle}" |
| @@ -4,6 +4,8 @@ | @@ -4,6 +4,8 @@ | ||
| 4 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | 4 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
| 5 | <uses-permission android:name="android.permission.INTERNET" /> | 5 | <uses-permission android:name="android.permission.INTERNET" /> |
| 6 | <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> | 6 | <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> |
| 7 | + <uses-permission android:name="android.permission.RECORD_AUDIO" /> | ||
| 8 | + <uses-permission android:name="android.permission.CAMERA" /> | ||
| 7 | 9 | ||
| 8 | <application | 10 | <application |
| 9 | android:name=".SampleApplication" | 11 | android:name=".SampleApplication" |
| 1 | package io.livekit.android.sample | 1 | package io.livekit.android.sample |
| 2 | 2 | ||
| 3 | +import android.Manifest | ||
| 3 | import android.content.Intent | 4 | import android.content.Intent |
| 5 | +import android.content.pm.PackageManager | ||
| 4 | import android.os.Bundle | 6 | import android.os.Bundle |
| 5 | import android.text.SpannableStringBuilder | 7 | import android.text.SpannableStringBuilder |
| 8 | +import android.widget.Toast | ||
| 9 | +import androidx.activity.result.contract.ActivityResultContracts | ||
| 6 | import androidx.appcompat.app.AppCompatActivity | 10 | import androidx.appcompat.app.AppCompatActivity |
| 11 | +import androidx.core.content.ContextCompat | ||
| 7 | import io.livekit.android.sample.databinding.MainActivityBinding | 12 | import io.livekit.android.sample.databinding.MainActivityBinding |
| 8 | 13 | ||
| 14 | + | ||
| 9 | class MainActivity : AppCompatActivity() { | 15 | class MainActivity : AppCompatActivity() { |
| 10 | override fun onCreate(savedInstanceState: Bundle?) { | 16 | override fun onCreate(savedInstanceState: Bundle?) { |
| 11 | super.onCreate(savedInstanceState) | 17 | super.onCreate(savedInstanceState) |
| @@ -30,6 +36,38 @@ class MainActivity : AppCompatActivity() { | @@ -30,6 +36,38 @@ class MainActivity : AppCompatActivity() { | ||
| 30 | } | 36 | } |
| 31 | 37 | ||
| 32 | setContentView(binding.root) | 38 | setContentView(binding.root) |
| 39 | + | ||
| 40 | + requestPermissions() | ||
| 41 | + | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + private fun requestPermissions() { | ||
| 45 | + val requestPermissionLauncher = | ||
| 46 | + registerForActivityResult( | ||
| 47 | + ActivityResultContracts.RequestMultiplePermissions() | ||
| 48 | + ) { grants -> | ||
| 49 | + for (grant in grants.entries) { | ||
| 50 | + if (!grant.value) { | ||
| 51 | + Toast.makeText( | ||
| 52 | + this, | ||
| 53 | + "Missing permission: ${grant.key}", | ||
| 54 | + Toast.LENGTH_SHORT | ||
| 55 | + ) | ||
| 56 | + .show() | ||
| 57 | + } | ||
| 58 | + } | ||
| 59 | + } | ||
| 60 | + val neededPermissions = listOf(Manifest.permission.RECORD_AUDIO, Manifest.permission.CAMERA) | ||
| 61 | + .filter { | ||
| 62 | + ContextCompat.checkSelfPermission( | ||
| 63 | + this, | ||
| 64 | + it | ||
| 65 | + ) == PackageManager.PERMISSION_DENIED | ||
| 66 | + } | ||
| 67 | + .toTypedArray() | ||
| 68 | + if (neededPermissions.isNotEmpty()) { | ||
| 69 | + requestPermissionLauncher.launch(neededPermissions) | ||
| 70 | + } | ||
| 33 | } | 71 | } |
| 34 | 72 | ||
| 35 | companion object { | 73 | companion object { |
-
请 注册 或 登录 后发表评论