.

.

.

.

.

临近过年了,又到了发送各类拜年短信的时刻了。虽然转发各类拜年短信已经显得越来越没年味,但是依然有很对人乐此不疲。为朋友送去祝福自然是好事,可是转发来的短信本身发送者就并没有投入太多的感情,那么发者无心自然看者也无心。近几年春节对于发来各类朗朗上口非原创短信的,我都一律回复“新年快乐。”四个大字加上对方的姓名。我觉得这平平淡淡的祝福足矣,何必让自己沉浸于信息的泡沫之中。短信只要用心发,让祝福真的充满自己的内心就可以了。

为了节省春节发短信的劳动力,自己动手开发了一个发短信的小程序。就在核心功能实现后进行全面测试的时候,发现群发时会弹出一个提示,如图1。

图1 发送大量短信的提示

在网上查阅了相关资料,说是Android系统有一个限制,一个应用程序一天之内发送短信数量如果超过100条就会弹出这个提示。

后来经过动手实验之后发现了解决办法:(以下解决办法是在Android模拟器中实现的,真机也许会有差异)

1.首先取得Root权限

C:\Users\yuhuashi>adb devices
List of devices attached
emulator-5554 device
emulator-5556 device

C:\Users\yuhuashi>adb -s emulator-5554 root
adbd is already running as root

2.进入 shell,利用 SQLite 工具修改系统安全配置

C:\Users\yuhuashi>adb -s emulator-5554 shell
#

要修改的数据库文件是:sqlite3 /data/data/com.android.providers.settings/databases/settings.db

# sqlite3 /data/data/com.android.providers.settings/databases/settings.db
sqlite3 /data/data/com.android.providers.settings/databases/settings.db
SQLite version 3.7.11 2012-03-20 11:35:50
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

3.首先看看这个库里面有什么表

sqlite> .tables
.tables
android_metadata bookmarks system
bluetooth_devices secure

4.通过名字判断应该就是修改 secure 这张表了,为了谨慎起见,再看看表结构吧

sqlite> .schema secure
.schema secure
CREATE TABLE secure (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT UNIQUE ON CONFLICT REPLACE,value TEXT);
CREATE INDEX secureIndex1 ON secure (name);

5.嗯,应该是它,用键值对的形式存储的配置信息。那么我们向里面插入两条设置吧。

sqlite> insert into secure(name, value) values('sms_outgoing_check_max_count', 99999);

sqlite> insert into secure(name, value) values('sms_outgoing_check_interval_ms', 0);

6.好了,看看写入成功了没有

sqlite> select * from secure order by _id desc;
select * from secure order by _id desc;
63|sms_outgoing_check_interval_ms|0
62|sms_outgoing_check_max_count|99999

7.OK,我们的设置已经写进去了,重启模拟器再次运行程序群发短信就没有弹出刚才那个消息,说明我们的配置成功了。

AD:项目地址:http://git.oschina.net/yuhuashi/AndroidTest
这个
项目本来就是打算用来练习和学习Android的,进入第一个Activity之后会看到对于各种测试窗口的分发导航按钮(目前只有一个:))。点击第一个“短信群发”按钮就可以使用这个小程序了。

参考文献:

解决Android系统短信群发时提示“正在发送大量短信” http://www.cnblogs.com/quejuwen/archive/2013/02/28/2936976.html

Android sending lots of SMS messages http://stackoverflow.com/questions/1663514/android-sending-lots-of-sms-messages

Android 提示应用“正在发送大量短信”的解决办法的更多相关文章

  1. Android 短信模块分析(四) MMS之短信的发送与接收

     MMS之短信的发送与接收分析: 一.信息发送: com.android.mms.data.WorkingMessage.java 类 send()函数: public void send() { . ...

  2. Android黑科技,读取用户短信+修改系统短信数据库

    安卓系统比起ios系统最大的缺点,相信大家都知道,就是系统安全问题.这篇博客就秀一波“黑科技”. 读取用户短信 Android应用能读取用户手机上的短信,相信已经不是什么新鲜事,比如我们收到的短信验证 ...

  3. 四:java调接口实现发送手机短信验证码功能

    1.点击获取验证码之前的样式: 2.输入正确的手机号后点击获取验证码之后的样式: 3.如果手机号已经被注册的样式: 4.如果一个手机号一天发送超过3次就提示不能发送: 二:前台的注册页面的代码:reg ...

  4. Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用

    近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...

  5. 发送SMS短信(JSON) 转载

    http://blog.csdn.net/ldl22847/article/details/42553883 public   static string GetMobileConfByUserId( ...

  6. SNF开发平台WinForm之十二-发送手机短信功能调用-金笛-SNF快速开发平台3.3-Spring.Net.Framework

    1.调用前组装参数 2.调用发送信息服务脚本   .调用前组装参数: BaseSendTaskEntity entity = new BaseSendTaskEntity(); entity.Mess ...

  7. 用Java通过串口发送手机短信

    用Java通过串口发短信其实很简单,因为有现成的类库供我们使用.有底层的类库,也有封装好一点的类库,下面我介绍一下在 Win32 平台下发送短信的方法. 如果你想用更底层的类库开发功能更强大的应用程序 ...

  8. 利用java实现的一个发送手机短信的小例子

    今天闲来无事,在微博上看到一个关于用java实现的一个发送手机短信的程序,看了看,写的不太相信,闲的没事,把他整理下来,以后可能用得着 JAVA发送手机短信,流传有几种方法:(1)使用webservi ...

  9. C#简单实现发送手机短信

    偶然想起,像编写一个从电脑向手机发送短信的程序,从网上查找到有三种方式:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2) ...

随机推荐

  1. 8个实用而有趣Bash命令提示行

    很多人都对过命令行提示的重要性不屑一顾,甚至是一点都不关心.但是我却一点都不这么认为,一个好的命令行提示可以改变你使用命令的方式.为此,我在internet上找到一些非常实用,优秀,并有趣的bash的 ...

  2. 全面拥抱移动测试,Mobile JSON Wire Protocol Specification文档翻译

    Selenium3已经宣布不支持移动化测试.对于老牌测试工具selenium来说这是以退为进,因为移动自动化测试工具的标准还在selenium团队手上. 本文轻度翻译了这个标准,看得懂的人不用翻译也能 ...

  3. Java – Stream has already been operated upon or closed

    Java – Stream has already been operated upon or closed package com.mkyong.java8; import java.util.Ar ...

  4. 针对MSHFlexGrid的一系列通用方法-项目中实践代码分享

    1.给MSHFlexGrid填充数据通用方法 '自定义报表填充程序 fgrid Public Function ShowformfData(Resultset As ADODB.Recordset, ...

  5. update关联其他表批量更新数据-跨数据库-跨服务器Update时关联表条件更新

    1.有时在做项目时会有些期初数据更新,从老系统更新到新系统.如果用程序循环从老系统付给新系统. 2.有时在项目中需要同步程序,或者自动同步程序时会有大量数据更新就可能用到如下方法了. 3.为了做分析, ...

  6. PHP数组排序sort、asort与ksort用法

    分享下PHP数组排序之sort.asort与ksort用法,实例中简单示范了sort.asort与ksort的用法,并备有注释加以详细说明. PHP数组排序中sort.asort与ksort的用法. ...

  7. Oracle 11G 安装图文教程

    Oracle 11G 下载地址:http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.htm ...

  8. Tsk4.5异步

    public async void LoadData<T>(WhereClip where,OrderByClip order) where T : Entity, new() { try ...

  9. Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免?

    如题 Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免? 一个进程在调用exit命令结束自己的生命的时候,其实他并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结 ...

  10. window函数 resetAccumulator

    /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreem ...