龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 移动开发 > Android开发 >

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

时间:2014-06-13 02:04来源:网络整理 作者:网络 点击:
分享到:
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);
}
}
}
}

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!
按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接