在 Android 中发送短信

Android 允许直接从应用程序发送 SMS 消息。

应用程序必须具有发送 SMS 消息的权限。因此,我们需要SEND_SMS在清单文件中请求权限。

app/src/main/AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.app">

    <uses-permission android:name="android.permission.SEND_SMS" />

    <application>
        ...
    </application>

</manifest>

ContextCompat.checkSelfPermission()使用我们检查是否授予所需权限的方法。如果没有,那么我们通过调用方法请求许可ActivityCompat.requestPermissions()

SmsManager管理 SMS 操作。我们可以使用getDefault()静态方法来获取SmsManager. 可以使用方法发送短信sendTextMessage()

app/src/main/java/com/example/app/MainActivity.kt

package com.example.app

import android.Manifest
import android.content.pm.PackageManager
import android.os.Bundle
import android.telephony.SmsManager
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat

class MainActivity : AppCompatActivity()
{
    private val permission: String = Manifest.permission.SEND_SMS
    private val requestCode: Int = 1

    override fun onCreate(savedInstanceState: Bundle?)
    {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        if (ContextCompat.checkSelfPermission(this, permission)
            != PackageManager.PERMISSION_GRANTED
        ) {
            ActivityCompat.requestPermissions(this, arrayOf(permission), requestCode)
        } else {
            sendSms()
        }
    }

    private fun sendSms()
    {
        val smsManager = SmsManager.getDefault()

        val phoneNumber = "154XXXXXXXX"
        val message = "Hello"
        smsManager.sendTextMessage(phoneNumber, null, message, null, null)
    }
}

版权声明:本文内容转自互联网,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908#qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

  • WebRTC服务端点对点播放媒体资源

    在通常情况下,我们遇到视频或者音频播放均采用视频文件加载到前端,然后用对应的组件播放,如果涉及到付费视频则一般采用直播HLS拉流点播的方式;如果你听过WebRTC这项技术那么恭喜你…

    2023年3月1日
  • ZEGO 实时传译上线,提供实时语音识别和文本翻译功能

    ZEGO 实时传译(ZegoRealtimeTranslation),是 ZEGO 携手智能语音行业生态服务商提供的实时语音转写及翻译服务,通过 SDK 接入后,提供将音频流实时识…

    2023年5月17日
  • 如何排查网络丢包问题

    要明白一个知识点,首先要快速的对这个知识点建立一个概念模型,有了概念模型之后,再在这个模型上不断的去填充一些细节的东西,会有助于我们把握知识的本质。 带宽是什么? 带宽是网络被发送…

    2023年2月16日
  • 使用贝叶斯优化改进流媒体服务体验

    在流媒体服务中,有数百个相关配置参数,这些配置参数影响流媒体服务的实际体验质量。例如,此类配置指定我们开始播放之前要加载的视频内容量,以平衡播放延迟和重新缓冲的风险。由于参数和各种流媒体指标的复杂交互,如何找到在不同网络和设备上运行良好的配置,是目前比较关注的热点和难点。为了帮助应对这些挑战,我们提出使用贝叶斯优化方法,通过构建一个代理模型,有效地探索和理解配置参数和客观指标(如播放延迟、重新缓冲率等)之间的关系。

    2022年4月12日
  • WebRTC JitterBuffer之RTP包和GOP内帧排序

    在音视频网络传输过程中,由于存在网路抖动情况,接收端视频接受不及时导致播放卡顿,为了消除帧间抖动情况,一个解决手段是JitterBuffer。JitterBuffer包括RTP包的…

    2023年2月26日
  • 业务感知技术在5G回传网络中的应用及演进思考

    摘要:5G网络大带宽、低时延、广连接和移动性强的特点,面向行业应用的5G三大类业务场景对网络提出了差异化承载的要求,因此5G回传网络需要深度参与到提升业务感知和服务能力过程,增强网…

    2023年2月10日

发表回复

登录后才能评论