最近开始学习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文档。