Android 短信

本文介绍了在Android应用中实现短信发送功能的方法,并详细说明了如何处理Android6.0及以上的动态权限申请问题。通过示例代码展示了如何检查并请求发送短信权限,以及如何使用SmsManager发送短信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android 发短信功能实现
http://blog.youkuaiyun.com/kongxiuqi/article/details/50781784
第一个方法是进入短信发送界面 但是需要手动按发送
第二个方法总在sendTextMessage的地方停下来 我看权限也给了
怀疑是因为他代码骚了一下 定义了一个PendingIntent sentPI

Android——SMS接收发短信与运行权限
https://www.cnblogs.com/llw1996/p/6721348.html

如何判断android 短信发送(sendTextMessage)是否成功
http://blog.youkuaiyun.com/garybook/article/details/16887627

Android6.0动态权限申请步骤以及需要注意的一些坑
https://www.jianshu.com/p/a51593817825

遇到的问题 之前一直显示没有权限
后来发现 是因为我在Androidmanifest.XML里面
将定义在application内,所以一直没有申请。

这是默认的名字

private static final String SENT_SMS_ACTION = "demo_sms_send_action";
private static final String KEY_PHONENUM = "phone_num";

String phone = “13110511823”;
String content= “您的锁10次未开,请注意小偷”;

在oncreate

    //查看短信权限
    if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.SEND_SMS}, 1);
    }

调用sendSMS(phone,content);

public void sendSMS(String phoneNumber,String message){
    android.telephony.SmsManager smsManager = android.telephony.SmsManager.getDefault();
    List<String> divideContents = smsManager.divideMessage(message);
     for (String text : divideContents) {
        smsManager.sendTextMessage(phoneNumber, null, text, null, null);
    }
}

//重写onRequestPermissionsResult
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    switch (requestCode) {
        case 1:
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                //这里写操作 如send(); send函数中New SendMsg (号码,内容);
            } else {
                Toast.makeText(this, "你没启动权限", Toast.LENGTH_SHORT).show();
            }
            break;

        default:
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值