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