安卓系统短信源码依赖库、可运行的源码

安卓系统短信源码库  点击打开链接

安卓系统短信源码  点击打开链接

新项目需要做短信模块功能,此短信模块非安卓系统短信模块,是利用了360张勇主导的开源框架,进行URL拦截,剥离出来的短信模块

第一步:

去下载安卓系统源码,通过对比4.4和4.4+版本的源码,果断用了4.4的源码,为什么呢?因为4.4短信源码类少,将来bug少,短信模块的代码如下截图

第二步:

我就拿As来说把(我起初是在eclipse上调试好的,后来移到As上),将上面几个类导入进来,肯定是bug挺多的,后来在源码里找到关联的类,我先贴出来最后的类

我先说下几个bug点:

1、首先,这个短信模块的代码是一个依赖库存在的(后期可能移到到项目中),所以说在主项目配置文件中需要填写如下

xmlns:tools="http://schemas.android.com/tools"
<uses-sdk tools:overrideLibrary="com.android.providers.telephony"/>

2、因为360安全模块是依赖的23的api,起先怕依赖报错,我就依赖了22的api,避免不知道的冲突

 compileSdkVersion 22
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }

3、因为代码中有好多错误,就拿一个错误来说,setAppOps(AppOpsManager.OP_READ_SMS, AppOpsManager.OP_WRITE_SMS);这个是报错的,解决方法如下

因为我的代码是摘抄的4.4的系统短信源码,所以我就从网上下载了4.4源码编译后的class文件,这里就先上图下这些class文件

4、class文件下载完毕后,就去下面截图的目录,蓝色框是修改的android.jar  红色框是自带的,我们是需要蓝色框修改后的jar包,因为这个jar可以解决诸如setAppOps这些方法,是利用编译后的.class文件跟sdk自带的android进行对比修改得出

5、然后在看下配置文件的cp,这里说2点哈,改成true,然后自定义短信url




  <provider
            android:name="com.android.providers.telephony.TelephonyProvider"
            android:authorities="telephony_launcher"
            android:exported="true"
            android:multiprocess="true" />

        <provider
            android:name="com.android.providers.telephony.MmsProvider"
            android:authorities="mms_launcher"
            android:exported="true"
            android:multiprocess="true"
            android:readPermission="android.permission.READ_SMS"
            android:writePermission="android.permission.WRITE_SMS" >
            <grant-uri-permission android:pathPrefix="/part/" />
            <grant-uri-permission android:pathPrefix="/drm/" />
        </provider>
        <provider
            android:name="com.android.providers.telephony.MmsSmsProvider"
            android:authorities="mms-sms_launcher"
            android:exported="true"
            android:multiprocess="true"
            android:readPermission="android.permission.READ_SMS"
            android:writePermission="android.permission.WRITE_SMS" />
        <provider
            android:name="com.android.providers.telephony.SmsProvider"
            android:authorities="sms_launcher"
            android:exported="true"
            android:multiprocess="true"
            android:readPermission="android.permission.READ_SMS"
            android:writePermission="android.permission.WRITE_SMS" />

6、接下来就拿sms来说明把,

setAppOpps刚开始为了解决这个方法,修改了android.jar因为是系统自带的,刚开始也没有去注释啊、去掉代码之的,就是怕改多了后期bug无从下手,setAppOpps方法需要去掉,不然的话是不能创建的,我通过log才解决这个bug的

android4.4默认短信机制是为了不让后台默默发送短信,但不幸的是,原生并没有禁止非默认短信发短信

还有我写这博客,这只是第一步只是插入可以了,貌似删除修改我还没有测试,我之前写过demo,4.4以后默认的系统短信是不能直接进行删除、修改的,得需要反射方法,才可以进行操作的

	@Override
	public boolean onCreate() {

//		setAppOps(AppOpsManager.OP_READ_SMS, AppOpsManager.OP_WRITE_SMS);
		mOpenHelper = MmsSmsDatabaseHelper.getInstance(getContext());
		return true;
	}

7、然后就是修改一些bug存在的反射方法

8、然后就是删掉那个报红的,还有干掉style文件

到此为止基本上bug就差不多了

这里说下eclipse上bug会比较少,可以通过引用lib方式方便,么有as里面那些多余的style啊 themebug

本人也是4月初才开始用as的,对as蛋疼的狠,但是as有一个优于eclipse的地方,eclipse编译有时候编译库不通过,一直卡,as编译很快

时间: 2024-07-31 19:56:16

安卓系统短信源码依赖库、可运行的源码的相关文章

打造自己的视频会议系统 -- 原理篇 (附送GGMeeting 1.0 源码)

自从在博客园发布广域网即时通信系统GG(QQ高仿版)以来,结识了很多做IM的朋友,然后我和我的伙伴们也接到了很多与IM相关的项目.相比在发布GG之前难以接到项目的状况相比,现在简直太幸福了,虽然做项目很辛苦,但毕竟有钱赚,那辛苦也值了. 饮水思源,这里要感谢博客园提供了这么好的一个平台,让我们能展现自己的实力,提升我们的知名度,然后才能接到了更多项目.所以,我强烈建议那些希望接项目.接私单的朋友,都来博客园写博客吧,写出自己的知名度后,真是好处多多! 言归正传,前段时间做了个在线教育培训的项目,

Spring IoC 依赖注入(二)源码分析

目录 Spring IoC 依赖注入(二)源码分析 1. 依赖注入口 - populateBean 1.1 doCreateBean 1.2 populateBean 2. 手动注入 2.1 相关的类说明 2.2 applyPropertyValues 2.3 BeanDefinitionValueResolver 2.4 依赖检查 2. 自动注入 2.1 那些字段会自动注入 2.2 名称注入 2.3 类型注入 Spring IoC 依赖注入(二)源码分析 本章主要分析 Spring IoC 依

【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)

作者 : 韩曙亮  博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csdn.net/shulianghan VLC 二次开发 视频教程 : http://edu.csdn.net/course/detail/355 博客总结 : -- 本博客目的 : 让 Android 开发者通过看本博客能够掌握独立移植 VLC Media Player 核心框架到自己的 app 中,

编译哈工大语言技术平台云LTP(C++)源码及LTP4J(Java)源码

转自:编译哈工大语言技术平台云LTP(C++)源码及LTP4J(Java)源码 JDK:java version “1.8.0_31”Java(TM) SE Runtime Environment (build 1.8.0_31-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)OS:win7 64bitcmake:V2.8.12/V3.2.2LTP:V3.2.0LTP4J:V1.0Microsoft VS C+

Android 源码系列之&lt;十四&gt;从源码的角度深入理解LeakCanary的内存泄露检测机制(下)

转载请注明出处:http://blog.csdn.net/llew2011/article/details/52958567 在上边文章Android 源码系列之<十三>从源码的角度深入理解LeakCanary的内存泄露检测机制(中)由于篇幅原因仅仅向小伙伴们讲述了在Android开发中如何使用LeakCanary来检测应用中出现的内存泄露,并简单的介绍了LeakCanary的相关配置信息.根据上篇文章的介绍我们知道LeakCanary为了不给APP进程造成影响所以新开启了一个进程,在新开启的

QtCreator源码分析(一)——QtCreator源码简介

QtCreator源码分析(一)--QtCreator源码简介 一.QtCreator简介 QtCreator是设计精巧的插件式系统,QtCreator的核心是一个插件管理器,其所有功能都是使用插件完成.在启动时,QtCreator会首先加载一个名为coreplugin的插件,coreplugin插件提供了Qt Creator最基本的功能和扩展点,其余的插件都是直接或间接依赖于coreplugin插件提供的机制,一步步扩充QtCreator的功能,最终将其变成一个功能完整的IDE.针对QtCre

网易新闻应用源码完整版客户端+服务端源码

这个源码是从安卓教程网android分享过来的,看到这个项目比较不错,就转了.网易新闻应用源码完整版客户端+服务端源码,仿网易新闻,android端+服务器端1,为了加快访问速度,服务器端数据是写死了的,数据太多的就复制粘贴了,不是数据库查询的2,新闻图片下载代码注释掉了(网速给力的可以放开注释),显示的是默认图片 3.运行时记得改android端Constantvalues类里面的IP地址4,  UI结合使用的挺不错的等.<ignore_js_op>   <ignore_js_op&g

eclipse运行Tomcat源码

Tomcat 导入eclipse 本例采用 apache-ant-1.9.2(版本不一样的注意配置路径) tomcat 6.0.26 下载ant http://mirror.bit.edu.cn/apache//ant/binaries/apache-ant-1.9.4-bin.zip 由于只找到1.9.4的下载包以下的配置需要注意路径 解压到E盘根目录,注意解压之后的结构应该是如下图: 有时候不小心解压的时候会多出一个apache-ant-1.9.2 配置环境变量ANT_HOMT 值为:E:\

房卡麻将源码下载十三水房卡麻将源码搭建教程

代码中需修改的地方:1.cocos2d-x-3.14.1\cocos\Android.mk 里面 #$(call import-module,curl/prebuilt/android)修改成$(call import-module,curl/prebuilt/android) 2.cocos2d-x-3.14.1\extensions\Android.mk 添加如下  目的是为了支持外部静态curl库LOCAL_STATIC_LIBRARIES += cocos_network_staticL