不发短信获取短信中心号
来源:技术人生 责任编辑:栏目编辑 发表时间:2013-07-01 10:56 点击:次
获取短信中心号大致有三种方式,第一种方法 通过向移动运营商(比如10086)发送一条免费短信然后等待对方回复,从对方回复的短信中获取短信中心号;实现方式参见http://blog.csdn.net/sodino/article/details/5871537 ,该种方式的优点就是肯定能得到正确的短信中心号(电信的卡除外), 但也有一些缺点 1: 对方回复短信需要等待一段时间,具体等待多长时间无法确定。2: 有的手机不一定能成功拦截下行短信因此带来的用户体验不是很好。
第二种方法和第一种比较相似,直接从用户的收件箱中读取一条短信然后从该信息中获取短信中心号,这种方式的好处就是不用发送短信;缺点是获取的短信中心号不一定正确,比如用户以前一直用的移动的卡收件箱中短信存的都是移动的短信中心号,之后如果换成联通的卡后获取的短信中心还是移动的。
第三种就是直接获取用户手机中的短信中心号,该种方式需要你的应用满足两个条件,1:你的应用需要有系统签名. 2:你的应用需要和phone进程在同一个进程组。具体实现方式如下:
配置AndroidManifest.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hello"
android:sharedUserId="android.uid.phone"
android:versionCode="1"
android:versionName="100">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hello"
android:sharedUserId="android.uid.phone"
android:versionCode="1"
android:versionName="100">
<application android:icon="@drawable/icon"
android:process="com.android.phone"
android:label="@string/app_name">
<activity android:name=".HelloWordActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
android:process="com.android.phone"
android:label="@string/app_name">
<activity android:name=".HelloWordActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
具体实现代码如下:
public class HelloWordActivity extends Activity implements Callback
{
{
private Handler mSmscHandle = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try
{
mSmscHandle = new Handler(this);
getSmsc();
{
mSmscHandle = new Handler(this);
getSmsc();
}
catch(Exception e)
{}
}<
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>