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的更多相关文章
- rails 新建user的phonenumber字段
1.新建字段 //rails g migration add_字段名_to_表名 字段名:字段类型 rails g migration add_title_to_contents title:stri ...
- 通过AngularJS实现前端与后台的数据对接(二)——服务(service,$http)篇
什么是服务? 服务提供了一种能在应用的整个生命周期内保持数据的方法,它能够在控制器之间进行通信,并且能保证数据的一致性. 服务是一个单例对象,在每个应用中只会被实例化一次(被$injector实例化) ...
- HTML5 input元素新的特性
在HTML5中,<input>元素增加了许多新的属性.方法及控件.本文章分别对这三方面进行介绍. 目录 1. 属性 2. 方法 3. 新控件 1. 属性 <input>元素在H ...
- 通过sails和阿里大于实现短信验证
通过sails与阿里大于来实现注册短信验证码的发送,逻辑图如下 1.用户在客户端发送手机号给服务器,服务器接收到手机号,生成对应时间戳,随机四位数验证码 2.服务器将电话号码和验证码告诉阿里大于服务器 ...
- .Net中的AOP读书笔记系列之AOP介绍
返回<.Net中的AOP>系列学习总目录 本篇目录 AOP是什么? Hello,World! 小结 本系列的源码本人已托管于Coding上:点击查看,想要注册Coding的可以点击该连接注 ...
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
--系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...
- android 通讯录实现
最近项目需要,于是自己实现了一个带导航栏的通讯录,上代码! 一.数据准备 (1)bean: public class Friend { private String remark; private S ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(15)-权限管理系统准备
系列目录 这节我们说下权限系统的特点,本系统采用的是MVC4+EF5+IOC 接口编程的架构,其中的权限树用的是DWTree,功能上做到灵活,授权操控细致,权限可以细到按钮级别 ,为了部署简单,导致设 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(18)-权限管理系统-表数据
系列目录 这一节,我们插入数据来看看数据流,让各位同学,知道这个权限表交互是怎么一个流程,免得大家后天雾里来雾里去首先我再解释一些表,SysUser和SysRole表不用解释了. SysRoleSys ...
随机推荐
- PHP找工作指南!
本文章是小编经过58.前程无忧.智联招聘.51.拉勾网等招聘网站总结PHP开发工作所需技能的部分总结,如有不对或不全之处,还请多多提意见! 前端: 1.html(html5:加分项)+css+div+ ...
- iOS----------设计模式的六大设计原则------>开放-关闭原则(OCP,Open-Close Principle)
定义 一个软件实体(如类.模块.函数)应当对扩展开放,对修改关闭. 定义解读 在项目开发的时候,都不能指望需求是确定不变化的,大部分情况下,需求是变化的.那么如何应对需求变化的情况?这就是开放-关闭原 ...
- 字符串函数 (strfun)
字符串函数 (strfun) 题目描述 两个等长的由大写英文字母构成的字符串a和b,从a中选择连续子串x,从b中选出连续子串y.子串x与子串y的长度相等. 定义函数f(x,y)为满足条件xi=yi(1 ...
- pat 团体天梯赛 L1-039. 古风排版
L1-039. 古风排版 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 中国的古人写文字,是从右向左竖向排版的.本题就请你编写 ...
- 【Codeforces Round #518 (Div. 2)】
A:https://www.cnblogs.com/myx12345/p/9847588.html B:https://www.cnblogs.com/myx12345/p/9847590.html ...
- duilib入门简明教程 -- 自绘标题栏(5) (转)
原文转自 http://www.cnblogs.com/Alberl/p/3343667.html 如果大家有做过标题栏的自绘,肯定会感慨各种不容易,并且现有的一些资料虽然完美的实现了 ...
- django Modelform 使用
前言: 为什么要用form去验证呢? 我们提交的是form表单,在看前端源码时如果检查到POST URL及我们提交的字段,如果没有验证我们是否可以直接POST数据到URL,后台并没有进行校验,直接处理 ...
- python-rtslib 模块
Python library for configuring the Linux kernel-based multiprotocol SCSI target (LIO) A Python objec ...
- 广州地区常用的DNS解析服务器
广州电信DNS: 首选:202.96.128.143 备用:202.96.128.68 首选:202.96.134.133 备用:202.96.128.166 首选:61.144.56.100备用:6 ...
- AC日记——N的倍数 51nod 1103
1103 N的倍数 思路: 先计算出前缀和: 然后都%n: 因为有n个数,所以如果没有sum[i]%n==0的化,一定有两个取模后的sum相等: 输出两个sum中间的数就好: 来,上代码: #incl ...