`
心雨心
  • 浏览: 355821 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

读取SIM卡信息

阅读更多

通过TelephonyManager读取SIM卡信息:

AndroidManifest.xml中配置权限:
<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

      package="com.ek.test"

      android:versionCode="1"

      android:versionName="1.0">

    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <activity android:name=".SIMCard"

                  android:label="@string/app_name">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

    <uses-sdk android:minSdkVersion="3" />

    <uses-permission android:name = "android.permission.READ_PHONE_STATE"/>

</manifest>

主程序:import java.util.ArrayList;

import java.util.List;

import android.app.ListActivity;

import android.os.Bundle;

import android.telephony.TelephonyManager;

public class SIMCard extends ListActivity {

    /** Called when the activity is first created. */

private List<String> items;

private List<String> values;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        TelephonyManager tm = (TelephonyManager)this.getSystemService(TELEPHONY_SERVICE);//取得相关系统服务

        items = new ArrayList();

        values = new ArrayList();

        items.add("SIM 卡状态");

        switch(tm.getSimState()){ //getSimState()取得sim的状态  有下面6中状态

        case TelephonyManager.SIM_STATE_ABSENT :values.add("无卡");break;

        case TelephonyManager.SIM_STATE_UNKNOWN :values.add("未知状态");break;

        case TelephonyManager.SIM_STATE_NETWORK_LOCKED :values.add("需要NetworkPIN解锁");break;

        case TelephonyManager.SIM_STATE_PIN_REQUIRED :values.add("需要PIN解锁");break;

        case TelephonyManager.SIM_STATE_PUK_REQUIRED :values.add("需要PUK解锁");break;

        case TelephonyManager.SIM_STATE_READY :values.add("良好");break;

        }

       

        items.add("卡号");

        if(tm.getSimSerialNumber()!=null){

         values.add(tm.getSimSerialNumber().toString());

        }else{

         values.add("无法取得SIM卡号");

        }

       

        items.add("供货商代码");

        if(tm.getSimOperator().equals("")){

         values.add("无法取得供货商代码");

        }else{

         values.add(tm.getSimOperator().toString());

        }

       

        items.add("供货商");

        if(tm.getSimOperatorName().equals("")){

         values.add("无法取得供货商");

        }else{

         values.add(tm.getSimOperatorName().toString());

        }

       

        items.add("国籍");

        if(tm.getSimCountryIso().equals("")){

         values.add("无法取得国籍");

        }else{

         values.add(tm.getSimCountryIso().toString());

        }

        setListAdapter(new DataAdapter(SIMCard.this,items,values));

    }

}
List的适配器import java.util.List;

import android.content.Context;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.TextView;

public class DataAdapter extends BaseAdapter {

private List<String> items;

private List<String> values;

private LayoutInflater lif ;

public DataAdapter(Context context,List<String> items,List<String> values){

  this.items = items;

  this.values = values;

  lif = LayoutInflater.from(context);

}



public int getCount() {

  // TODO Auto-generated method stub

  return items.size();

}

public Object getItem(int arg0) {

  // TODO Auto-generated method stub

  return items.get(arg0);

}

public long getItemId(int position) {

  // TODO Auto-generated method stub

  return position;

}

public View getView(int position, View convertView, ViewGroup parent) {

  // TODO Auto-generated method stub

  MyView mv ;

  if(convertView == null){

   convertView = lif.inflate(R.layout.mylayout, null);//加载自定义的布局

/*设置自定义的布局*/

   mv = new MyView();

   mv.tv1 = (TextView)convertView.findViewById(R.id.item1);

   mv.tv2 = (TextView)convertView.findViewById(R.id.item2);

   convertView.setTag(mv);

  }else{

   mv = (MyView)convertView.getTag();

  }



  mv.tv1.setText(items.get(position).toString());

  mv.tv2.setText(values.get(position).toString());

  return convertView;

}

/*自定义的view里面只有两个属性 也就是两行显示 第一行是显示标题 第二行是显示的内容*/

private class MyView{

  TextView tv1;

  TextView tv2;

}

}

res/layout/mylayout.xml :list的布局

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

<TextView 

android:id="@+id/item1"

    android:layout_width="fill_parent"

    android:layout_height="25px"

  

    />

<TextView 

android:id="@+id/item2"

    android:layout_width="fill_parent"

    android:layout_height="25px"

  

    />

   

</LinearLayout>

 

分享到:
评论

相关推荐

    Android 读取SIM卡信息代码(完整工程)

    在Android平台上,开发人员可以利用特定的API来访问和读取SIM卡信息,这在一些应用中非常有用,比如定位、身份验证或者提供网络服务。本文将深入探讨如何通过编程方式实现这一功能,并且详细解释如何创建一个完整的...

    C# Windows Mobile 读取SIM卡信息

    为了调试和测试,你可以连接到真实的Windows Mobile设备,或者使用模拟器来运行应用程序,查看读取SIM卡信息的效果。 总的来说,开发这样的应用需要对Windows Mobile API和.NET Compact Framework有深入的理解,...

    SIM卡无法识别排查解决方案.docx

    SIM卡无法识别的问题是移动通信模块中常见的故障现象,尤其在使用移远EC20这样的模组时。本文档提供了一套详细的排查流程,旨在帮助开发者解决SIM_VDD无输出电压,以及出现CPIN-error的情况。 首先,通过发送AT指令...

    单片机直接读写SIM卡的软件设计

    在当今的信息时代,SIM卡作为用户身份识别模块被广泛应用,它的通信遵循GSM11.11标准。通常情况下,SIM卡的读写操作是通过GSM设备与微处理器(如单片机或ARM)交互来实现的,微处理器通过发送AT指令控制GSM设备进而...

    解SIM卡软件

    用户可以通过阅读这份文档了解如何操作软件,包括安装、设置、读取SIM卡信息、复制过程以及可能遇到的问题和解决方案。 "FD V3.0.exe":这是软件的可执行文件,表示FD软件的第三版。用户双击此文件即可启动软件,...

    Windows mobile 下读取手机SIM卡信息(转).rar

    在Windows Mobile操作系统上,开发应用程序来读取SIM卡信息是一项常见的任务,这主要涉及移动设备的通信和身份验证功能。Windows Mobile是微软为掌上设备和智能手机设计的一个操作系统,它提供了一个类似桌面Windows...

    STM32 的 SIM 卡数据读写

    随着移动通信技术和智能卡技术的飞速发展,使得市场对SIM卡的要求 越来越高,不仅从性能上要求其智能化的程度提高,而且要求...据新业务日益增多,地位日益凸显,已经使得SIM卡成为个人信息存储和 增值业务的承载平台。

    智能卡读写工具 SIM卡工具

    1. **读取SIM卡信息**:可以读取SIM卡上的联系人、短信、通话记录等数据。这些信息对于备份和迁移至关重耍,尤其是当更换新手机时。 2. **写入SIM卡**:允许用户将新的联系人、短信等内容写入SIM卡,方便在不同设备...

    获取手机SIM卡运营商

    例如,用户可能需要给予应用相关的权限才能读取SIM卡信息,且在某些设备或系统版本中,这些信息可能被严格限制或不可用。 在进行跨平台开发时,开发者需要考虑到不同平台的差异性,并适当地处理权限请求和异常情况...

    sim卡查询软件

    SIM卡查询软件是一种专门用于获取和管理SIM卡信息的应用程序,它可以帮助用户了解与SIM卡相关的各种详细数据。SIM卡,全称为Subscriber Identity Module(用户身份模块),是移动通信设备中不可或缺的部分,它存储了...

    4G模组 SIM卡无法识别排查解决方案

    4G模组 SIM卡无法识别排查解决方案 在本文中,我们将详细讨论 4G 模组 SIM 卡无法识别的问题,并提供相应的排查和解决方案。 标题解释: 4G 模组 SIM 卡无法识别是一种常见的问题,导致模组无法连接网络和参与...

    Android 读取SIM卡参数

    - **TelephonyManager**:这个类提供了访问手机信息的方法,包括SIM卡信息、网络信息等。以下是一些常用的方法: - `getDeviceId()`:获取IMEI号。 - `getSubscriberId()`:获取IMSI号。 - `getSimOperator()`:...

    获取SIM卡信息

    在Android开发中,获取网络和SIM卡信息是常见的需求,这涉及到系统服务的调用以及权限的管理。本文将详细讲解如何在Android应用中获取SIM卡信息,包括运营商名称、SIM卡ID(IMEI)、SIM序列号(IMSI)等,并简要提及...

    AndroidNFC对sim卡操作dome

    这个文件可能包含了模拟不同场景的测试用例,例如测试读取SIM卡信息、写入数据或者验证指令执行结果等。 总的来说,这个"Android NFC对sim卡操作dome"提供了一个实际的案例,展示了如何在Android应用中与SIM卡进行...

    siminfo3.55 sim卡信息检测工具

    这是一款专业的SIM卡信息读取和分析软件,它能够帮助用户获取SIM卡上的各种关键信息,包括但不限于ICCID(国际移动用户识别码)、IMSI(国际移动用户识别码)、SIM卡序列号等。这些信息在故障诊断、设备注册、网络...

    sim卡PCB封装

    - **功能测试**:确保SIM卡封装后能够正常读取、写入和通信,通常需要通过专用设备进行测试。 6. **标准与兼容性**: - 遵循国际电信联盟(ITU)、3GPP等相关组织制定的SIM卡标准,确保设备间的兼容性。 - 设计...

    SIM卡数据读取Dome

    4. `DataParser.cs`: 解析SIM卡返回的数据,将二进制数据转化为可读的电话簿和短信格式。 在实际应用中,我们还需要处理各种异常情况,如读卡器未找到、SIM卡未插入、权限不足等。此外,为了提供良好的用户体验,...

    最全的SIM卡相关协议

    SIM卡,全称为Subscriber Identity Module,是移动通信设备中用于存储用户身份信息和安全密钥的重要组件。在本文中,我们将深入探讨与SIM卡相关的协议,这些协议确保了SIM卡与移动网络之间的安全通信。 首先,我们...

    WWindows mobile 下读取手机SIM卡信息.doc

    在Windows Mobile操作系统下...总之,通过理解IMSI、IMEI、TMSI和MSISDN等概念,以及如何利用TAPI接口,开发者可以在Windows Mobile环境中编写程序来读取SIM卡信息,从而实现特定的功能需求,例如身份验证或设备管理。

Global site tag (gtag.js) - Google Analytics