android监控sim卡有没有服务示例(sim卡管理)

 更新时间:2014年01月11日 15:58:19   作者:  
android监听SIM卡有没有服务,可以使用android.telephony.PhoneStateListener类来实现,下面是一个简单的小例子,大家参考使用吧


复制代码 代码如下:

public class UniteqService {
public static final String LOG_TAG = "UniteqService";
public boolean DEBUG = true;
private boolean hasService = false;//是否有服务
private PhoneStateListener[] mPhoneStateListener;//监听双卡
private TelephonyManager mPhone;

//监听类
private PhoneStateListener getPhoneStateListener(final int sub) {
PhoneStateListener sPhoneStateListener = new PhoneStateListener(sub) {
    @Override
        public void onServiceStateChanged(ServiceState serviceState) {
            // TODO Auto-generated method stub
            if (serviceState != null) {
                if (serviceState.getState() == ServiceState.STATE_IN_SERVICE) {
                    hasService = true;
                } else {
                    hasService = false;
                }
            } else {
                if (DEBUG) Log.d(TAG, "no service state...may be the balance is not enough" + sub);
            }
            super.onServiceStateChanged(serviceState);
        }
      };
    return sPhoneStateListener;
}
//注册监听
private void registerPhoneListener() {
//获取卡号数,MSimTelephonyManager 这个类API没有开放,可以通过编译源码
//得到frameworks.jar包并导入你的工程, 然后import android.telephony.MSimTelephonyManager;
mSub = MSimTelephonyManager.getDefault().getPhoneCount();
mPhoneStateListener = new PhoneStateListener[mSub];
for (int i = 0; i < mSub; i++) {
mPhoneStateListener[i] = getPhoneStateListener(i);
mPhone.listen(mPhoneStateListener[i], PhoneStateListener.LISTEN_SERVICE_STATE);
}
}

//取消监听
private void unregisterPhoneListener() {
mSub = MSimTelephonyManager.getDefault().getPhoneCount();
for (int i = 0; i < mSub; i++) {
if(mPhoneStateListener[i] != null){
mPhone.listen(mPhoneStateListener[i], PhoneStateListener.LISTEN_NONE);
}
}
}
}

相关文章

  • Android对so进行简单hook思路解析

    Android对so进行简单hook思路解析

    这篇文章主要为大家介绍了Android对so进行简单hook思路解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Android studio 快速删除无用资源的方法

    Android studio 快速删除无用资源的方法

    最近苦于android 项目越来越大,项目需求不停变动。项目中的资源文件越来越杂,越来越乱。android studio怎么删除无用资源呢?下文图文并茂给大家介绍的非常详细,需要的朋友参考下吧
    2017-11-11
  • Android单项绑定MVVM项目模板的方法

    Android单项绑定MVVM项目模板的方法

    这篇文章主要给大家介绍了关于Android单项绑定MVVM项目模板的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • Android设计模式之单例模式详解

    Android设计模式之单例模式详解

    这篇文章主要为大家详细介绍了Android设计模式之单例模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • android仿直播圆点加载效果

    android仿直播圆点加载效果

    这篇文章主要为大家详细介绍了android仿直播圆点加载效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • Android系统中使用shareuserid获取系统权限的教程

    Android系统中使用shareuserid获取系统权限的教程

    这篇文章主要介绍了Android系统中使用shareuserid获取系统权限的教程,这样以来不同的apk就可以互相访问对应的app文件夹,需要的朋友可以参考下
    2016-04-04
  • Android 自定义SurfaceView详解

    Android 自定义SurfaceView详解

    本文主要介绍Android SurfaceView自定义方法,这里对SurfaceView的基础知识做了详解,并附简单的示例代码,以便参考,有需要的小伙伴可以参考下
    2016-08-08
  • Android使用API实现图像扭曲效果示例

    Android使用API实现图像扭曲效果示例

    这篇文章主要介绍了Android使用API实现图像扭曲效果,涉及Android坐标运算与图形绘制相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • 如何在Flutter中嵌套Android布局

    如何在Flutter中嵌套Android布局

    通常Flutter与Android页面交互是各自独占整个手机屏幕,但有些情况下无法满足需求,有些时候Flutter中没有提供相关插件或者插件不满足需求,这时候就需要开发者自定义插件,开发者可以参考本文中的方法去进行自定义。
    2021-06-06
  • Flutter系统网络图片加载流程解析

    Flutter系统网络图片加载流程解析

    这篇文章主要介绍了Flutter系统网络图片加载流程,从构造函数开始说起,我们以最简单的调用方式举例,当我们使用Image.network(imageUrl)这种方式来显示图片时,Image组件内部image属性就会被赋值NetworkImage,具体操作步骤跟随小编一起看看吧
    2022-05-05

最新评论