public class MainActivity extends AppCompatActivity {     private String defaultSmsPkg;     private String mySmsPkg;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         //获取默认App包名并保存         defaultSmsPkg = Telephony.Sms.getDefaultSmsPackage(this);         mySmsPkg = this.getPackageName();         if (!defaultSmsPkg.equals(mySmsPkg)) {             //            如果这个App不是默认的Sms App,则修改成默认的SMS APP             //            因为从Android 4.4开始,只有默认的SMS APP才能对SMS数据库进行处理             Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);             intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, mySmsPkg);             startActivity(intent);         }     }     // 点击按钮 往短信数据库里面插入一条数据     public void click1(View v) {         // 由于短信数据库已经通过内容提供者暴露出来了 所以我们可以直接通过内容解析者操作数据库         Uri uri = Uri.parse("content://sms/inbox");         ContentValues values = new ContentValues();         values.put("address", "110");         values.put("body", "王先生,请您马上来一趟,否则后果自负");         values.put("date", System.currentTimeMillis());         getContentResolver().insert(uri, values);         Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);         intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, defaultSmsPkg);         startActivity(intent);     } }

然后按照清单文件里的新建对应的类,类里面可以什么都不用写

                                                                                                                                                                                                                                                                                                                                                                                                                                                


以上为5.0以上系统写短信方式。

但是在同一个click里调用两次更改默认短信方式(改为app再改回message)会出一些无响应的问题,待解决。

Android4.4之前,可以直接申请权限来解决读写短信问题

        

在Android4.4之后,但是在4.4以上以及5.1由于系统更新了 SMS 的部分API,加强了权限控制,因此现在只有default SMS app才能对短信数据库有写权限,但是用户可以把第三方应用设置为default SMS app。也就是说非default SMS app也能读写短信,只不过是不能写入短信数据库中,这也就直接导致在4.4以上短信无法恢复。

4.4-5.0写短信方式看我上一篇博文。






  




   





   

更多相关文章

  1. Android 接收短信并屏蔽notification 提示
  2. android 模拟器获取root权限的方法
  3. Android 关于 如何使用外界导入的数据库文件
  4. 修改Android系统目录的读写权限命令
  5. WCF 实例 —— Android 短信助手 (WCF + Android) (1)
  6. Android 6.0权限处理问题
  7. 探索新的Android权限模式
  8. Linux文件的特殊权限位SUID、SGID作用及编程设置/读取
  9. Android 事件全局监听(二)需要root权限 ,使用getevent监听Android输

随机推荐

  1. Golang底层是什么语言
  2. golang和go是什么关系
  3. golang如何连接数据库
  4. golang服务器有优势吗
  5. golang如何读取文件是否存在
  6. golang可以开发android吗
  7. Golang如何定义error
  8. Golang开发用什么IDE
  9. Golang判断文件是否能写入的方法
  10. golang可以调用lua吗?