CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: bluemask con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: megthebest con ben 5 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 31 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 1 su 1
Discussione:

Come settare il reindirizzamento di chiamata via codici mmi?

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Sep 2024
    Messaggi
    1

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Come settare il reindirizzamento di chiamata via codici mmi?

    Sto cercando di redirigere le chiamate usando il codice mmi *21*telNum# programmaticamente nel codice

    Ecco il mio ultimo tentativo

    codice:
    import android.Manifest
    import android.content.Intent
    import android.content.pm.PackageManager
    import android.net.Uri
    import android.os.Bundle
    import androidx.activity.enableEdgeToEdge
    import androidx.appcompat.app.AppCompatActivity
    import androidx.core.app.ActivityCompat
    import androidx.core.net.toUri
    import androidx.core.view.ViewCompat
    import androidx.core.view.WindowInsetsCompat
    import org.linphone.LinphoneApplication.Companion.corePreferences
    import org.linphone.R
    
    class ConfirmRedirectionActivity : AppCompatActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            enableEdgeToEdge()
            setContentView(R.layout.activity_confirm_redirection)
            ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
                val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
                v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
                insets
            }
            findViewById<android.widget.Button>(R.id.button).setOnClickListener { setupForwarding() }
        }
    
        fun setupForwarding() {
            if (ActivityCompat.checkSelfPermission(
                    this,
                    Manifest.permission.CALL_PHONE
                ) != PackageManager.PERMISSION_GRANTED
            ) {
                ActivityCompat.requestPermissions(
                    this,
                    arrayOf(Manifest.permission.CALL_PHONE),
                    CALL_PHONE_PERMISSION_REQUEST_CODE
                )
                return
            }
    
    
            fun telCall(telNum: String) =
                startActivity(
                    Intent(Intent.ACTION_CALL).apply {
                        flags = Intent.FLAG_ACTIVITY_NEW_TASK
                        data = Uri.fromParts("tel", telNum, null)
                        Log.i("About to call $data")
                    }
                )
            telCall("##002#")
            Log.i("Cleared call forwarding")
            telCall("*21*${intent.getStringExtra("telIn") ?: ""}#")
            Log.i("Call forwarding enabled")
    
            corePreferences.firstStart = false
            startActivity(Intent(this, MainActivity::class.java)) // Go to dialer view
            finish()
        }
    
        override fun onRequestPermissionsResult(
            requestCode: Int,
            permissions: Array<out String>,
            grantResults: IntArray
        ) {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults)
            if (requestCode == CALL_PHONE_PERMISSION_REQUEST_CODE) {
                if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    setupForwarding()
                } else {
                    // TODO: Handle permission denied
                }
            }
        }
    
        companion object {
            private const val CALL_PHONE_PERMISSION_REQUEST_CODE = 100
        }
    }
    Questo codice reindirizza verso MainActivity (come me l'aspetto) ma quando provo a controllare con *#21# risulta il reindirizzamento non settato

    Ho anche provato con TelecomService.placeCall (fa solo chiamate, non gestisce codici mmi) e TelecomService.handleMmi ( richiede di essere l'app dialer di sistema)

  2.  

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy