# Setup the application In this guide you will: 1. [Request permissions](#request-permissions) needed by SDK to intercept the incoming flashcall automatically. 2. Proceed with the verification flow with the number [typed by the user](#pass-number-to-verify). ## Request permissions MainActivity.kt package com.sinch.rtc.flashcall.gettingstarted import android.Manifest import android.os.Bundle import android.view.LayoutInflater import androidx.appcompat.app.AppCompatActivity import androidx.core.app.ActivityCompat import com.sinch.rtc.flashcall.gettingstarted.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { companion object { const val PERMISSION_REQUEST_CODE = 5 } private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(LayoutInflater.from(this)) setContentView(binding.root) binding.initButton.setOnClickListener { ActivityCompat.requestPermissions( this, arrayOf( Manifest.permission.READ_PHONE_STATE, Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.READ_CALL_LOG ), PERMISSION_REQUEST_CODE ) } } override fun onRequestPermissionsResult( requestCode: Int, permissions: Array, grantResults: IntArray ) { super.onRequestPermissionsResult(requestCode, permissions, grantResults) //We simply proceed with the verification VerificationDialog.newInstance(binding.phoneInputEditText.text.toString()) .apply { show(supportFragmentManager, "dialog") } } } Although the SDK can work without all the permissions being granted by the user, for best user experience, we highly recommend requesting these as in such a case the incoming phone call can be automatically intercepted by the SDK and reported to the Sinch Platform. `MainActivity.kt` code snippet shows how to request them and proceed with the verification once all of them are granted. Permissions requested here should also be listed in the `AndroidManifest.xml` file. You can read more about Android permissions [here](https://developer.android.com/guide/topics/manifest/manifest-intro#perms). ## Pass number to verify For simplicity we simply pass the number typed by the user without any reformatting or validation. ```kotlin binding.phoneInputEditText.text.toString() ``` In order the verification to succeed the number must be in E.164 Format, e.g. Netherlands 0639111222 -> +31639111222. See [phone numbers](/docs/verification/android/android-phone-numbers/) section to read more about phone numbers handling. Note that as long as you're using a test account you have to add the number you're trying to verify to your [verified numbers](https://dashboard.sinch.com/numbers/verified-numbers) tab in the dashboard. ## Next steps Once we have the number to be verified and required permissions granted it's time to initiate your first flashcall verification request! Initiate the verification ## Additional resources Learn more about the Verification API: - [API specification](/docs/verification/api-reference/verification)