手机卫士14-显示来电归属地

简介: <table cellspacing="0" cellpadding="0" style="word-wrap:break-word; empty-cells:show; border-collapse:collapse; table-layout:fixed; width:1119px; color:rgb(68,68,68); font-family:Tahoma,'Microsoft




好啦,我们今天就要把号码归属地显示在有电话打进来的时候,其实也很简单的啦,我们只要开一个服务,监听电话的广播,然后在电话相应的状态,进行相应的操作就可以的啦

至于怎样把那个view显示到接听电话那个界面上,这个更简单啦,那个Toast是怎样显示的,我们就怎样显示就可以了。

我们打开Toast的源码,可以发现在一个静态的内部类TN里面,有这样一段代码

其实这一段就是设置好我们的Toast而已的代码啦,我们可以参照着来写一下

好啦,我们就要修改上一次写的AddressService这个类啦,

  1. package com.xiaobin.security.service;

  2. import android.app.Service;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.graphics.PixelFormat;
  6. import android.os.IBinder;
  7. import android.telephony.PhoneStateListener;
  8. import android.telephony.TelephonyManager;
  9. import android.view.WindowManager;
  10. import android.widget.TextView;

  11. import com.xiaobin.security.engine.NumberAddressService;

  12. public class AddressService extends Service
  13. {
  14.         private TelephonyManager telephonyManager;
  15.         private MyPhoneListener listener;
  16.         private WindowManager windowManager;
  17.         private TextView tv;

  18.         @Override
  19.         public IBinder onBind(Intent intent)
  20.         {
  21.                 return null;
  22.         }
  23.         
  24.         @Override
  25.         public void onCreate()
  26.         {
  27.                 super.onCreate();
  28.                 
  29.                 windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
  30.                 listener = new MyPhoneListener();
  31.                 telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
  32.                 telephonyManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
  33.         }
  34.         
  35.         @Override
  36.         public void onDestroy()
  37.         {
  38.                 super.onDestroy();
  39.                 //停止监听
  40.                 telephonyManager.listen(listener, PhoneStateListener.LISTEN_NONE);
  41.         }
  42.         
  43.         //显示归属地的窗体
  44.         private void showLocation(String address)
  45.         {
  46.                 WindowManager.LayoutParams params = new WindowManager.LayoutParams();
  47.                 params.width = WindowManager.LayoutParams.WRAP_CONTENT;
  48.                 params.height = WindowManager.LayoutParams.WRAP_CONTENT;
  49.                 params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE //无法获取焦点
  50.                                 | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE //无法点击
  51.                                 | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;//保持屏幕亮
  52.                 params.format = PixelFormat.TRANSLUCENT;//设置成半透明的
  53.                 params.type = WindowManager.LayoutParams.TYPE_TOAST;
  54.                 params.setTitle("Toast");
  55.                 
  56.                 tv = new TextView(AddressService.this);
  57.                 tv.setText("归属地: " + address);
  58.                 windowManager.addView(tv, params);
  59.         }
  60.         
  61.         //========================================================================
  62.         
  63.         private class MyPhoneListener extends PhoneStateListener
  64.         {
  65.                 @Override
  66.                 public void onCallStateChanged(int state, String incomingNumber)
  67.                 {
  68.                         super.onCallStateChanged(state, incomingNumber);
  69.                         
  70.                         switch(state)
  71.                         {
  72.                                 case TelephonyManager.CALL_STATE_IDLE : //空闲状态
  73.                                         if(tv != null)
  74.                                         {
  75.                                                 windowManager.removeView(tv);//移除显示归属地的那个view
  76.                                                 tv = null;
  77.                                         }
  78.                                         break;
  79.                                         
  80.                                 case TelephonyManager.CALL_STATE_OFFHOOK : //接通电话
  81.                                         if(tv != null)
  82.                                         {
  83.                                                 windowManager.removeView(tv);//移除显示归属地的那个view
  84.                                                 tv = null;
  85.                                         }
  86.                                         break;
  87.                                         
  88.                                 case TelephonyManager.CALL_STATE_RINGING : //铃响状态
  89.                                         String address = NumberAddressService.getAddress(incomingNumber);
  90.                                         showLocation(address);
  91.                                         break;
  92.                                         
  93.                                 default : 
  94.                                         break;
  95.                         }
  96.                 }
  97.         }

  98. }
复制代码
就这样,我们的app就会在有电话进来的时候,把电话的归属地显示出来的啦但是记得在测试的时候,记得把我们上一次写的那个开启服务的CheckBox勾上,不然就不会显示出来的啦 好啦,今天的代码比较简单,就到这里,下一次,我们就美化一下这个显示框,加入风格的选择  Security_14接电话时显示电话归属地.rar (1.46 MB, 下载次数: 143)
目录
相关文章
|
6月前
分享:2秒快速查询40万手机号码归属地,批量手机号码归属地查询可以导出excel表格,WPS表格查询手机号码归属地怎么操作,批量手机号码归属地批量查询软件,批量号码查询按省份和城市分类,按运移动号码电信号码联通号码分类整理
本文介绍了如何批量快速查询手机号码归属地并进行分类。首先,通过提供的百度网盘或腾讯云盘链接下载免费查询软件。其次,开启软件,启用复制粘贴功能,直接粘贴号码列表并选择高速查询。软件能在极短时间内(如1.76秒内)完成40多万个号码的查询,结果包括归属地、运营商、邮箱和区号,且数据准确。之后,可直接导出数据至表格,若数据超过100万,可按省份、城市及运营商分类导出。文章还附带了操作动画演示,展示全程流畅的处理大量手机号码归属地查询的过程。
308 0
分享:2秒快速查询40万手机号码归属地,批量手机号码归属地查询可以导出excel表格,WPS表格查询手机号码归属地怎么操作,批量手机号码归属地批量查询软件,批量号码查询按省份和城市分类,按运移动号码电信号码联通号码分类整理
|
6月前
|
数据可视化 Java 数据挖掘
手机号归属地查询实例
手机号归属地查询实例
198 0
|
6月前
|
C# 索引
C# | 【完全开源】手机号码归属地查询,一秒内百万次查询
这个开源项目是一个.NET库,可以通过手机号码获取号码归属地信息,包括运营商、国家、省份、城市、邮政编码、区号等信息。 该库加载了一个包含46万条数据的“中国手机号归属地信息”数据集,并实现了高速查询。在我的7年老笔记本上执行一百万次查询耗时不足一秒。
292 0
|
JavaScript 前端开发 搜索推荐
HTML+JS 实现手机号码归属地查询功能
HTML+JS 实现手机号码归属地查询功能
312 0
HTML+JS 实现手机号码归属地查询功能
|
XML JSON 搜索推荐
一文轻松掌握手机号码归属地的的应用技巧
手机号码归属地API为我们提供了一种快速、准确获取手机号码归属地信息的工具。它在电信、电商、市场营销和金融等领域具有广泛的应用前景。随着技术的不断进步,手机号码归属地API将为我们带来更多便利和实用性,为我们的生活和工作带来更多的便利和效率。
279 0
|
文字识别 API 网络安全
一文带你看透手机号码归属地
手机号码归属地对企业与个人在生产与生活中起到了重要的作用,那么查询手机号码归属地的接口就是必不可少的了。APISpace上的手机号码归属地API就可以很好的满足手机号码归属地查询的需求。
1609 1
|
安全 Java API
手机号码归属地 API 实现防止骚扰电话,看这一篇就够了(内附设计思路和代码)
本文将会深入探讨如何利用手机号码归属地 API 在防止电话骚扰,此外,还会给大家列出手机号码归属地 API 的其他应用场景。
462 0
手机号码归属地 API 实现防止骚扰电话,看这一篇就够了(内附设计思路和代码)
|
API 定位技术 Python
别被骗了,通过手机号码归属地轻松辨别诈骗电话
通过手机号码归属地,我们可以大致了解一个人的所在地,这对于很多人来说是很有用的。
639 0
别被骗了,通过手机号码归属地轻松辨别诈骗电话
|
API 网络安全
手机号码归属地可以应用在哪些地方呢?
在手机号码整个使用群体中个人占比高达90%,使用人数大、占比高的特点也造成了电话诈骗的高频发生。同时由于个人信息的泄露,诈骗分子在充分了解了受害人的资料,使诈骗犯罪活动更高的犯罪成功率。在诈骗高发之时,手机号码归属地作为一个通讯衍生的工具,可以第一时间发挥其作用,在接到不明来电时可以通过手机号码归属地起到判断来电的作用。
332 0
手机号码归属地可以应用在哪些地方呢?
|
Android开发
《手机卫士性能优化方案-Android篇》电子版地址
手机卫士性能优化方案-Android篇
97 0
《手机卫士性能优化方案-Android篇》电子版地址

热门文章

最新文章