项目地址:PhoneNumber
简介:一个获取号码归属地和其他信息(诈骗、骚扰等)的开源库
 

一个获取号码归属地和其他信息(诈骗、骚扰等)的开源库。支持本地离线(含归属地、骚扰、常用号码)和网络(百度、聚合数据或自定义 API)查询。English

  

下载

通过 gradle 下载

dependencies {
compile 'org.xdty.phone.number:phone-number:0.7.13'
}

或 maven

<dependency>
<groupId>org.xdty.phone.number</groupId>
<artifactId>phone-number</artifactId>
<version>0.7.</version>
<type>aar</type>
</dependency>

或从 maven central 直接下载 AAR 文件

用法

1. 添加 meta-data 到 AndroidManifest

<meta-data
android:name="org.xdty.phone.number.API_KEY"
android:value="API_KEY"/>
<meta-data
android:name="org.xdty.phone.number.JUHE_API_KEY"
android:value="JUHE_API_KEY"/>

你可以从  聚合数据 获取 JUHE_API_KEY,百度 API 中心 获取 API_KEY 。这一部分是用于联网查询的 API 私钥。

也可以在代码中设置 baidu_api_key 和 juhe_api_key 的 SharedPreferences 来动态控制 API 密钥,更多内容请参考 来电信息 的实现。

2. 代码中添加如下内容, 更多内容请参考 example 和 CallerInfo

new PhoneNumber(this, new PhoneNumber.Callback() {
@Override
public void onResponseOffline(INumber number) {
} @Override
public void onResponse(INumber number) {
// Do your jobs here
textView.setText(number.getName());
} @Override
public void onResponseFailed(INumber number) {
}
}).fetch("", "", "", "OTHER_PHONE_NUMBER");

本地查询会通过 onResponseOffline(INumber number) 返回,联网查询会通过 onResponse(INumber number) 返回。

3. 自定义服务器及 API

请参考 自定义 API 文档

4. 自定义号码处理器

请参考 model 中的实现,实现 INumber 和 NumberHandler 接口。并在调用 fetch 前调用addNumberHandler(new YourCustomNumberHandler())

5. 禁用联网查询

请设置 only_offline_key 的 SharedPreferences 来全局控制,或使用 PhoneNumber(context, true, callback) 临时控制。

6. 优先查询控制

默认的查询顺序为 本地特殊号码->本地常用号码->本地标记号码->本地离线归属地->Google 离线归属地->联网自定义 API->联网百度 API->联网聚合数据 API 。可以通过设置 api_type 的 SharedPreferences 来控制优先的网络查询接口,值为每个模块的 getApiId() 返回值。

PhoneNumber的更多相关文章

  1. rails 新建user的phonenumber字段

    1.新建字段 //rails g migration add_字段名_to_表名 字段名:字段类型 rails g migration add_title_to_contents title:stri ...

  2. 通过AngularJS实现前端与后台的数据对接(二)——服务(service,$http)篇

    什么是服务? 服务提供了一种能在应用的整个生命周期内保持数据的方法,它能够在控制器之间进行通信,并且能保证数据的一致性. 服务是一个单例对象,在每个应用中只会被实例化一次(被$injector实例化) ...

  3. HTML5 input元素新的特性

    在HTML5中,<input>元素增加了许多新的属性.方法及控件.本文章分别对这三方面进行介绍. 目录 1. 属性 2. 方法 3. 新控件 1. 属性 <input>元素在H ...

  4. 通过sails和阿里大于实现短信验证

    通过sails与阿里大于来实现注册短信验证码的发送,逻辑图如下 1.用户在客户端发送手机号给服务器,服务器接收到手机号,生成对应时间戳,随机四位数验证码 2.服务器将电话号码和验证码告诉阿里大于服务器 ...

  5. .Net中的AOP读书笔记系列之AOP介绍

    返回<.Net中的AOP>系列学习总目录 本篇目录 AOP是什么? Hello,World! 小结 本系列的源码本人已托管于Coding上:点击查看,想要注册Coding的可以点击该连接注 ...

  6. iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总

    --系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...

  7. android 通讯录实现

    最近项目需要,于是自己实现了一个带导航栏的通讯录,上代码! 一.数据准备 (1)bean: public class Friend { private String remark; private S ...

  8. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(15)-权限管理系统准备

    系列目录 这节我们说下权限系统的特点,本系统采用的是MVC4+EF5+IOC 接口编程的架构,其中的权限树用的是DWTree,功能上做到灵活,授权操控细致,权限可以细到按钮级别 ,为了部署简单,导致设 ...

  9. ASP.NET MVC5+EF6+EasyUI 后台管理系统(18)-权限管理系统-表数据

    系列目录 这一节,我们插入数据来看看数据流,让各位同学,知道这个权限表交互是怎么一个流程,免得大家后天雾里来雾里去首先我再解释一些表,SysUser和SysRole表不用解释了. SysRoleSys ...

随机推荐

  1. iOS-文本段落样式NSMutableParagraphStyle与NSParagraphStyle的使用和一些富文本处理属性

    开发过程中,经常会遇到动态计算行高的问题, - (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)op ...

  2. File(IO流)

    import java.io.File; import java.io.IOException; import org.junit.Test; /** *java.io.File类 *1.凡是与输入输 ...

  3. Socket通信入门小实例

    客户端: public class Client { private int port = 8000; private String host = "localhost"; pri ...

  4. BZOJ4000 [TJOI2015]棋盘 【状压dp + 矩阵优化】

    题目链接 BZOJ4000 题解 注意题目中的编号均从\(0\)开始= = \(m\)特别小,考虑状压 设\(f[i][s]\)为第\(i\)行为\(s\)的方案数 每个棋子能攻击的只有本行,上一行, ...

  5. POJ3648 Wedding 【2-sat】

    题目 Up to thirty couples will attend a wedding feast, at which they will be seated on either side of ...

  6. python 小爬虫

    import reimport urllibdef getHtml(url): page=urllib.urlopen(url); html=page.read() return htmldef ge ...

  7. UnionFind(PYthon实现)

    UnionFind用于解决图的连通性问题,不需要给出具体路径的情况,可用来计算连通分支数 参考链接: https://blog.csdn.net/dm_vincent/article/details/ ...

  8. hdu 1573(中国剩余定理)

    X问题 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  9. AC日记——中庸之道 codevs 2021

    2021 中庸之道  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description 给定一个长度为N的序列 ...

  10. Ticket Lock, CLH Lock, MCS Lock

    如果不用OS提供的mutex,我们该如何实现互斥锁?(不考虑重入的情况) 1. naive lock 最简单的想法是,搞一个volatile类型的共享变量flag,值可以是flase(无锁)或者tru ...