📌  相关文章
📜  如何以编程方式检查 Android 中是否插入了 AUX?

📅  最后修改于: 2022-05-13 01:55:19.894000             🧑  作者: Mango

如何以编程方式检查 Android 中是否插入了 AUX?

AUX(辅助)端口是大多数日常使用的电子设备中常见的端口。它是用于将音频信号从一个设备传输到另一个设备的标准通信端口。我们主要在手机、电脑、电视机、扬声器、耳机和耳麦上观察它们。在播放音乐时,如果我们在手机和外部扬声器(如耳机)之间建立有线电缆,则音乐应用程序必须快速断开与之前的扬声器的连接并开始在耳机中播放。在这里,设备需要知道是否插入了 AUX。

想要一个更快节奏和更具竞争力的环境来学习 Android 的基础知识吗?
单击此处前往由我们的专家精心策划的指南,旨在让您立即做好行业准备!

因此,在本文中,我们将向您展示如何以编程方式检查 Android 中是否插入了 AUX 电缆。

分步实施

第 1 步:在 Android Studio 中创建一个新项目

要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。我们在Kotlin中演示了该应用程序,因此请确保在创建新项目时选择 Kotlin 作为主要语言。

步骤 2:使用MainActivity.kt 文件

转到MainActivity.kt文件并参考以下代码。下面是MainActivity.kt文件的代码。代码中添加了注释以更详细地理解代码。

Kotlin
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring a broadcast receiver to 
        // check if headset plug is plugged in
        val mBroadcastReceiver = object : BroadcastReceiver(){
            override fun onReceive(context: Context?, intent: Intent) {
                val mAction = intent.action
                if (Intent.ACTION_HEADSET_PLUG == mAction) {
                    if (intent.getIntExtra("state", -1) == 0) {
                        Toast.makeText(applicationContext, "AUX not plugged in", Toast.LENGTH_LONG).show()
                    }
                    if (intent.getIntExtra("state", -1) == 1) {
                        Toast.makeText(applicationContext, "AUX plugged in", Toast.LENGTH_LONG).show()
                    }
                }
            }
        }
          
        // Declaring a receiver filter for registering
        val mReceiverFilter = IntentFilter(Intent.ACTION_HEADSET_PLUG)
  
        // Registering both broadcast receiver with receiver filter
        registerReceiver(mBroadcastReceiver, mReceiverFilter)
    }
}


输出:

最初,没有插入 AUX 电缆。所以我们没有在消息中插入辅助线。然后我们手动插入 AUX 电缆,我们得到了一个肯定的祝酒消息。