我想创建一个askMicrophonePermission
函数Permission.class
.并写Permission().askMicrophonePermission()
在onCreate()
.
我不知道如何改变这让ActivityCompat.checkSelfPermission
和ActivityCompat.requestPermissions
能够在运行
Permission().askMicrophonePermission()
.
这是我的代码:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Permission().askMicrophonePermission()
}
}
Run Code Online (Sandbox Code Playgroud)
class Permission {
fun askMicrophonePermission(){
val userMicrophonePermissionAgreeCode = 1
val currentMicrophonePermission = ActivityCompat.checkSelfPermission(_________,android.Manifest.permission.RECORD_AUDIO)
if (currentMicrophonePermission != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(_______________, arrayOf(android.Manifest.permission.RECORD_AUDIO), userMicrophonePermissionAgreeCode)
}
}
}
Run Code Online (Sandbox Code Playgroud) 我写了Permission类,这里有askMicrophonePermission 方法。
在askMicrophonePermission中,我使用ActivityCompat.requestPermissions 函数。
但我无法覆盖 Permission类中的onRequestPermissionsResult 。
如果我想在Permission中覆盖 onRequestPermissionsResult,而不是在MainActivity中。
怎么写??这是我的代码。
主要活动:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Permission().askMicrophonePermission(this@MainActivity)
}
}
Run Code Online (Sandbox Code Playgroud)
允许:
class Permission{
private val tag = "Permission message"
private val userMicrophonePermissionAgreeCode = 1
fun askMicrophonePermission(context: Context){
val currentMicrophonePermission = ActivityCompat.checkSelfPermission(context,android.Manifest.permission.RECORD_AUDIO)
if(currentMicrophonePermission != PackageManager.PERMISSION_GRANTED)
ActivityCompat.requestPermissions(context as Activity, arrayOf(android.Manifest.permission.RECORD_AUDIO), userMicrophonePermissionAgreeCode)
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { …
Run Code Online (Sandbox Code Playgroud)