gfg_200x200-min.png

How to Use Nearby Wi-Fi Entry Authorization in Android 13?

import android.R.attr

import android.annotation.SuppressLint

import android.app.StatusBarManager

import android.content.ComponentName

import android.material.Context

import android.material.Intent

import android.content material.pm.PackageManager

import android.graphics.drawable.Icon

import android.internet.Uri

import android.web.wifi.WifiManager

import android.os.Build

import android.os.Bundle

import android.provider.MediaStore

import android.widget.Button

import android.widget.ImageView

import android.widget.TextView

import android.widget.Toast

import androidx.action.outcome.ActivityResultLauncher

import androidx.exercise.result.contract.ActivityResultContracts

import androidx.appcompat.app.AppCompatActivity

import androidx.core.content material.ContextCompat

import com.google.android.materials.dialog.MaterialAlertDialogBuilder

import java.util.jar.Manifest

  

class MainActivity : AppCompatActivity() {

    

    private lateinit var permissionLauncher: ActivityResultLauncher

    personal lateinit var startHotspotBtn: Button

    non-public lateinit var statusTV: TextView

  

    

    private val wifiManager: WifiManager by lazy

        applicationContext.getSystemService(Context.WIFI_Service) as WifiManager

    

  

    @SuppressLint("WrongConstant")

    override fun onCreate(savedInstanceState: Bundle?)

        super.onCreate(savedInstanceState)

        setContentView(R.structure.activity_major)

  

        

        permissionLauncher = registerForActivityResult(

            

            ActivityResultContracts.RequestPermission()

        ) isGranted: Boolean ->

            if (isGranted)

                

                startHotSpot()

             else

                

                Toast.makeText(

                    this,

                    "Be sure to allow the Close by Wi-Fi Products authorization for this application",

                    Toast.Length_Extended,

                ).display()

            

        

  

        

        startHotspotBtn = findViewById(R.id.idBtnHotspot)

        statusTV = findViewById(R.id.idTVHotspotStatue)

  

        

        startHotspotBtn.setOnClickListener

            

            checkPermissions()

        

    

  

    @SuppressLint("InlinedApi")

    personal fun checkPermissions() {

        if (Build.Edition.SDK_INT >= Establish.Edition_CODES.M) {

            

            val authorization: String = android.Manifest.permission.Close by_WIFI_Equipment

            when

                

                ContextCompat.checkSelfPermission(

                    this, authorization,

                ) == PackageManager.Authorization_GRANTED ->

                    

                    startHotSpot()

                

                

                

                shouldShowRequestPermissionRationale(permission) ->

                    MaterialAlertDialogBuilder(this).setMessage("This application would not perform with no Close by Wi-Fi Products permission. Do you want to give this app the authorization?")

                        .setPositiveButton("Sure") _, _ ->

                            permissionLauncher.start(permission)

                        .setNegativeButton("No Many thanks") _, _ ->

  

                        .display()

                

                else ->

                    

                    permissionLauncher.launch(authorization)

                

            

        } else

            

            Toast.makeText(

                this,

                "Remember to use Android 13 device.",

                Toast.Length_Shorter,

            ).clearly show()

        

    }

  

    @SuppressLint("NewApi")

    personal exciting startHotSpot()

        

        wifiManager.startLocalOnlyHotspot(

            object : WifiManager.LocalOnlyHotspotCallback()

                override enjoyable onStarted(reservation: WifiManager.LocalOnlyHotspotReservation?)

                    super.onStarted(reservation)

                    

                    

                    startHotspotBtn.isEnabled = wrong

                    statusTV.text = "Status Local Only Hotspot: Commenced"

                

  

                override fun onFailed(cause: Int)

                    

                    super.onFailed(reason)

                    

                    Toast.makeText(

                        this@MainActivity,

                        "Error Local Only Hotspot: $reason",

                        Toast.Length_Brief,

                    ).demonstrate()

                

  

                override fun onStopped()

                    

                    tremendous.onStopped()

                    startHotspotBtn.isEnabled = accurate

                    statusTV.text = "Status Area Only Hotspot: STOPPED"

                

            ,

            null,

        )

    

}


Supply connection

Add a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.