【Android】无法发送短信的问题

最近开始学习Andriod,入门的第一本书是李刚老师的《疯狂Andriod讲义》。

 

在讲到事件处理时,有一段代码是用来实现发送短信的。但是在运行过程发生如下的错误:

※根据Exception的内容,了解到没有SEND_SMS权限。

========================================================

java.langSecurityException:Sending SMSmessage:uid 10057 does not have`android.permission.SEND_SMS

 

省略部分错误信息。。。

========================================================

 

网上查了很多的资料,大都是说在【AndroidManifest.xml】中添加【<uses-permissionandroid:name="android.permission.SEND_SMS"/>】。

 

但是添加后,依然没有解决。可能是由于使用的开发环境和Android版本的问题吧。

 

所以只好在程序中动脑筋,经过诸多尝试,终于找到解决方案。

■解决方案

1. 在AndroidManifest.xml中添加如下语句:

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

 

2. 在继承了Activity类的方法onCreate中,添加如下方法:

   super.onCreate(savedInstanceState);

setContentView(R.layout.main);

ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.SEND_SMS} , -1);

 

※上述两者缺一不可

※requestPermissions的第三个参数说明

   ·>= 0 : 启动画面是会提示是否允许该App拥有发送短信的权限。

   ·< 0  : 不提示相关信息,直接享有发送短信的权限。

※ActivityCompat.requestPermissions的具体用法可参考Andriod的API文档。

 


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值