android给自己发假短信
在Android系统中,"给自己发假短信"实际上是一种模拟短信收发的过程,它不涉及到真正的网络通信,而是通过操作系统的内部机制,利用短信Content Provider来向短信数据库添加数据,从而在短信应用中显示出一条新的短信记录。这个过程对于开发者来说,可能是为了测试应用的短信处理功能,或者创建某种特定的用户体验。 我们要了解Android中的Content Provider。Content Provider是Android四大组件之一,它是应用程序之间共享数据的主要机制。短信Content Provider通常命名为`com.android.providers.telephony.SmsProvider`,它管理着手机上的所有短信数据。要向短信数据库中插入一条假短信,我们需要获得Content Provider的Uri,这个Uri通常是`content://sms/inbox`或`content://sms/sent`,分别对应收件箱和发件箱。 接下来,我们需要编写一个Content Resolver的insert()方法调用,用于向Content Provider发送插入数据的请求。插入数据时,需要提供一个 ContentValues 对象,该对象包含了短信的各项属性,如:`body`(短信内容)、`address`(发送者号码,这里设置为自己手机的IMEI或自定义号码)、`type`(短信类型,如普通短信或彩信)、`date`(发送时间)等。以下是一个简单的示例代码: ```java ContentResolver resolver = getContentResolver(); ContentValues values = new ContentValues(); values.put(Telephony.Sms.BODY, "这是测试短信"); values.put(Telephony.Sms.ADDRESS, "1234567890"); // 自定义号码 values.put(Telephony.Sms.DATE, System.currentTimeMillis()); Uri uri = resolver.insert(Uri.parse("content://sms/inbox"), values); ``` 这段代码会将一条新短信插入到收件箱中,然后你可以在短信应用中看到这条假短信。 然而,需要注意的是,由于Android权限管理的限制,从Android 6.0(API级别23)开始,应用需要动态申请WRITE_SMS权限。因此,在插入短信之前,需要确保应用已经获得了这个权限。同时,不同的Android版本和设备可能对自定义短信的处理方式不同,因此在实际操作时可能需要进行适配。 在`FalseSms`这个文件名中,我们可以推测这可能是一个与模拟短信相关的项目或工具,它可能包含了一些实现上述功能的源代码、库文件或其他资源。如果你能访问到这个文件,那么通过分析和学习其中的代码,可以更深入地理解如何在Android上模拟发送和接收短信。 "给自己发假短信"是Android开发中一种常见的调试和测试手段,它涉及到对Content Provider的操作和权限管理,对于理解和调试与短信相关的应用功能具有重要意义。在实际应用中,开发者应当谨慎使用,避免对用户造成误解或滥用系统权限。
- 1
- Android唐浮2014-07-16很简单,很有趣 ~
- loving_ruide2015-09-02可以用,我在代码里复制了如下核心代码, 修改了一下,大家也可以用用,谢谢楼主分享,完美解决我的问题。 import android.os.SystemClock; SystemClock.sleep(10000); Uri uri = Uri.parse("content://sms/"); ContentValues values = new ContentValues(); values.put("address", "15821876659");
- gewenkang2017-11-12没用啊,白下载了。
- 粉丝: 2
- 资源: 20
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助