- 浏览: 417423 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
xinzhengjie:
服务器用什么实现
pjsip -
yxhloen01:
只放debug.keystore但是没给密码啊。。。。。。 ...
静默安装实现方法 -
tabolt:
android 应用强制停止 -
li1046964106:
[color=green][size=x-small][ali ...
安卓图表引擎AChartEngine(二) - 示例源码概述和分析 -
smallk2013:
用你这个方法为什么我只想模拟点击 无法实现啊
Android下执行Runtime.getRuntime().exec后返回状态
就是直接获取用户手机中的短信中心号,该种方式需要你的应用满足两个条件,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">
<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>
</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);
try
{
mSmscHandle = new Handler(this);
getSmsc();
}
catch(Exception e)
{}
}
@SuppressWarnings("unchecked")
public void getSmsc()
{
try
{
//调用PhoneFactory.getDefaultPhone()
Class PhoneFactory = Class.forName("com.android.internal.telephony.PhoneFactory");
Method getDefaultPhone = PhoneFactory.getMethod("getDefaultPhone", (Class[]) null);
Object phone = (Object)getDefaultPhone.invoke(null, (Object[]) null);
Log.i("HELLOWORLD", "phone:" + phone);
//调用Phone.getSmscAddress(Message result)
Class[] ParamType = new Class[1];
ParamType[0] = Message.class;
Message msg = mSmscHandle.obtainMessage(10001);
Object[] paramValue = new Object[1];
paramValue[0] = msg;
Class Phone = Class.forName("com.android.internal.telephony.Phone");
Method getSmscAddress = Phone.getDeclaredMethod("getSmscAddress", ParamType);
getSmscAddress.invoke(phone, paramValue);
}
catch( Exception e )
{
showTrace(e);
}
}
public boolean handleMessage(Message msg)
{
// TODO Auto-generated method stub
Log.i("HELLOWORLD", "handleMessage() msg.what:" + msg.what
+ " data:" + msg.peekData()
+ " result:" + msg.obj.toString());
if(10001 == msg.what)
{
dealSmscResult(msg.obj);
}
return false;
}
private void dealSmscResult(Object asyncResult)
{
try
{
Field exception = asyncResult.getClass().getDeclaredField("exception");
Throwable throwable = (Throwable)exception.get(asyncResult);
Field result = asyncResult.getClass().getDeclaredField("result");
Object myResult = result.get(asyncResult);
if(null != myResult)
{
Log.i("HELLOWORLD", "dealSmscResult() result:" + myResult.toString());
String szResult = (String)myResult;
String szAddr = szResult.split(",")[0];
Log.i("HELLOWORLD", "dealSmscResult() smsc:" + szAddr);
}
if(null != throwable)
{
Log.i("HELLOWORLD", "dealSmscResult() throwable:" + throwable.getMessage());
}
}
catch(Exception e)
{
showTrace(e);
}
}
}
代码比较简单,就是调用两个两个隐藏的com.android.internal.telephony.PhoneFactory,
om.android.internal.telephony.Phone 就能获取本机的短信中心号码。
之后还需要使用android源码包中 platform.pk8 platform.x509.pem 两个文件(build\target\product\security 目录下)对生成的apk签名;否则无法安装在手机上。签名的命令为
java -jar signapk.jar platform.x509.pem platform.pk8 HelloWord.apk HelloWordSign.apk
发表评论
-
圆盘旋转菜单
2013-08-27 23:35 802调用系统APP信息进行显示 -
Android下执行Runtime.getRuntime().exec后返回状态
2012-11-14 15:45 10087private String doExec(String cm ... -
获取APK文件的签名信息,反射实现
2012-11-14 15:12 2197private String showUninstallAPK ... -
获取APK文件的签名信息,反射实现
2012-11-14 15:12 1178private String showUninstallAPK ... -
android编辑单个工程
2012-09-14 14:54 753编译模块:android中的一个应用程序可以单独编译,编译后要 ... -
判断力应用程序安装位置
2012-09-05 09:28 813从Android 2.2开始软件可以安装到SD卡上,在API ... -
获取手机中已安装apk文件信息(应用图片、应用名、包名等)
2012-08-28 22:17 4038通过PackageManager可以获取手机端已安装的apk文 ... -
查询手机内所有支持分享的应用
2012-08-28 22:15 794/** * 查询手机内所有支持分享的应用 ... -
获取手机/SD卡内存大小(可用/全部)
2012-08-27 15:58 809//这个是手机内存的可用空间大小 static public ... -
语音识别
2012-08-26 15:21 761识别的语音列表listview显示出来,进行一些搜索等操作 -
android 应用强制停止
2012-08-23 17:50 6225在写应用的过程中,我们经常会遇到一些应用之间可能有冲突之类的, ... -
调用Android系统“应用程序信息(Application Info)”界面
2012-08-22 17:55 6478“Android系统设置->应用程序->管理应用程 ... -
ViewPager中使用Gallery!
2012-08-02 17:21 2300mPager.setOnTouchListener(new V ... -
Android ViewPager多页面滑动切换以及动画效果
2012-07-18 14:46 3473一、首先,我们来看一下效果图,这是新浪微博的Tab滑动效果。我 ... -
判断程序或者服务是否在前台运行
2012-07-15 23:07 10041.private boolean isTopActivity ... -
自定义标题栏
2012-07-11 15:24 8751. 代码中 requestWindowFeature(Win ... -
自定义对话框的主题
2012-07-11 15:19 846一、1.manifest.xml中 <activity ... -
调用选择图片、视频、添加音频、录音、拍摄视频、拍照等其他的功能
2011-06-23 20:30 1175//选择图片 requestCode 返 ... -
list中添加数据
2011-04-02 16:11 8329tabHost.addTab(tabHost.newTabSp ... -
QQ上的tabhost效果
2011-03-28 16:40 1228import android.app.Activity; im ...
相关推荐
android获取短信中心号
android 获取短信中心号 Demo。欢迎大家下载学习
Android获取手机短信
一个简单的使用Android Studio写的获取通讯录内容并且打电话发短信,如果安装完后APP闪退,请到设置中权限将相应的权限给他。
Android SIM卡号码获取,运营商标示获取
获取手机电话号码和手机短信内容。
主要介绍了Android获取手机号码和运营商信息的方法,以实例形式完整讲述了获取手机号码和运营商信息的技巧,代码中包含完整的注释说明,需要的朋友可以参考下
及时刷新短信内容,获取手机短信信息。让我可以上传短信给后台
android 获取手机短信和通话记录信息
【Android】短信应用——短信信息实时获取Demo 相关文章:http://blog.csdn.net/etzmico/article/details/6860692
获取带有以太网接口的android系统中ethernet和wifi连接信息(连接状态,IP地址,dns,netmask等信息)
获取短信,从本地数据库或SIM卡匹配发件人的姓名 android获取短信并匹配姓名 android获取短信并匹配姓名
android获取当前桌面壁纸。原文:http://blog.csdn.net/lnb333666/article/details/7772344
主要介绍了获取Android手机中所有短信的实现代码,需要的朋友可以参考下
此方法是通过手机本身保存的短信获取SMSC,本人测试通过,代码还需要稍微改动。希望对大家有帮助。如有问题。留言即可!
Android 获取移动网络及SIM卡运营商信息,可获取到SIM卡国别、SIM卡序列号、SIM卡状态、运营商代号、手机制式等信息。获取各个数据项的值: listValues.add(tm.getDeviceId());//获取设备编号 listValues.add(tm...
Android中获取系统内存信息以及进程信息-----ActivityManager的使用(一)
博客名称 : 【Android NDK 开发】在 C 代码中获取 Android 系统信息 ( NDK 项目创建 | NDK 配置 | 获取 Android 系统版本号 ) 博客地址 : https://hanshuliang.blog.csdn.net/article/details/102933704
android获取手机信息代码,很好,很不错!