Как использовать это и контекст в другом классе Android Kotlin? - PullRequest
0 голосов
/ 04 мая 2018

Я хочу создать askMicrophonePermission функцию в Permission.class. И напишите Permission().askMicrophonePermission() в onCreate().

Я не знаю, как изменить это , чтобы ActivityCompat.checkSelfPermission и ActivityCompat.requestPermissions может работать в Permission().askMicrophonePermission().

Вот мой код:

MainActivity:

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        Permission().askMicrophonePermission()
    }
}

Разрешение:

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)
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Вы можете использовать возможности companion object в Kotlin и создавать статические методы, такие как Java.

private companion object {
    fun askMicrophonePermission(context: Context) {

        val userMicrophonePermissionAgreeCode = 1
        val currentMicrophonePermission = ActivityCompat.checkSelfPermission(context, android.Manifest.permission.RECORD_AUDIO)
        if (currentMicrophonePermission != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(context, arrayOf(android.Manifest.permission.RECORD_AUDIO), userMicrophonePermissionAgreeCode)
        }
    }
}

А потом вы используете его как

ClassName.askMicrophonePermission(this@YouActivity)
0 голосов
/ 04 мая 2018

Вы можете использовать ниже

Для KOTLIN

Вы должны установить

Permission().askMicrophonePermission(this@MainActivity)

Затем передать Контекст .

 fun askMicrophonePermission(context: Context)

Интерфейс для глобальной информации о среде приложения. это абстрактный класс, реализация которого обеспечивается Android система.

FYI

В члене класса this относится к текущему объекту этого класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...