`

读取sim卡里号码

阅读更多

 大家都知道手机有通讯录,sim卡里也能存储通讯录的,下面就是实现sim卡里的通讯录,这里我们主要用到了cursor这个游标,这个是非常重要,我们需要的权限是android.permission.READ_CONTACTS
android.permission.WRITE_CONTACTSandroid.permission.READ_PHONE_STATE,我们来看看代码是怎么写的:

package EOE.android.phone;



import java.util.ArrayList;

import java.util.List;

import android.app.ListActivity;

import android.database.Cursor;

import android.net.Uri;

import android.os.Bundle;

import android.provider.ContactsContract;

import android.provider.ContactsContract.Contacts;

import android.util.Log;



@SuppressWarnings("unused")

public class Sim extends ListActivity {



private String tag = "contact";



private List<String> nameList = new ArrayList<String>();



private List<String> mobileList = new ArrayList<String>();



@Override

public void onCreate(Bundle savedInstanceState) {



super.onCreate(savedInstanceState);



setContentView(R.layout.phone_list);



listSimMetadata();



listSimContact();



setListAdapter(new MyAdapter(Sim.this,nameList,mobileList));



}



private void listSimContact(){



Uri uri = Uri.parse("content://icc/adn");



Cursor contacts = managedQuery(uri , null , null , null , null);Log.d("contact", contacts.getCount()+"");



while(contacts.moveToNext()){



String name = contacts.getString(contacts.getColumnIndex("name"));



String number = contacts.getString(contacts.getColumnIndex("number"));



Log.d("contact" , name + " = " + number);



nameList.add(name);



mobileList.add(number);



}

contacts.close();





}



/**

* 会把Sim卡和通讯录的数据全部读取出来

* 重叠返回

* 经测试 SIM卡内共有 _id,name,number,emails 四列数值

* 需要权限

* android.permission.READ_CONTACTS

* android.permission.WRITE_CONTACTS

* android.permission.READ_PHONE_STATE

*/



private void listSimMetadata(){



// Uri uri = Uri.parse("content://sim/adn");



Uri uri = Uri.parse("content://icc/adn");



Cursor contacts = managedQuery(uri , null , null , null , null);

Log.d("contact", contacts.getCount()+"");







while(contacts.moveToNext()){



String [] columns = contacts.getColumnNames();



for(int i = 0 ; i < columns.length ; i++){



String key = contacts.getColumnName(i);



String value = contacts.getString(contacts.getColumnIndex(key));



Log.d("contact" , key + " = " + value);



}



Log.d("contact", "==========================================================");



}



contacts.close();



}



}

 

package eoe.sgf.contact.phone;



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 MyAdapter extends BaseAdapter {



private LayoutInflater layoutInflater;



private List<String> name;



private List<String> mobile;



public MyAdapter(Context context, List<String> name, List<String> mobile) {



layoutInflater = LayoutInflater.from(context);



this.name = name;



this.mobile = mobile;



}



@Override

public int getCount() {



return name.size();



}



@Override

public Object getItem(int position) {



return name.get(position);



}



@Override

public long getItemId(int position) {



return position;



}



@Override

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



ViewHolder holder = null ; 



if (convertView == null) {



convertView = layoutInflater.inflate(R.layout.row_layout, null);



holder = new ViewHolder();



holder.name = (TextView) convertView.findViewById(R.id.name);



holder.mobile = (TextView) convertView.findViewById(R.id.mobile);



convertView.setTag(holder);



} else {



holder = (ViewHolder) convertView.getTag();



}



holder.name.setText(name.get(position).toString());



holder.mobile.setText(mobile.get(position).toString());



return convertView;



}



private class ViewHolder {



TextView name;



TextView mobile;



}



}

           布局文件 row_layout.xml

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



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

android:orientation="horizontal" 

android:layout_width="fill_parent"

android:layout_height="fill_parent">



<TextView

android:id="@+id/name" 

android:layout_width="100dip"

android:layout_height="40px" 

android:layout_weight="1.0"

android:textSize="18sp"

android:textColor="#FFFF00"

android:layout_gravity="right"

/>



<TextView 

android:id="@+id/mobile" 

android:layout_width="wrap_content"

android:layout_height="40px"

android:layout_gravity="center_horizontal" 

android:layout_weight="1.0"

android:textSize="16sp"

android:textColor="#008000"

/>



</LinearLayout>



//布局文件 phone_list.xml



<?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"

>



<ListView

android:id="@android:id/list"

android:layout_width="wrap_content"

android:layout_height="fill_parent"

>

</ListView>



</LinearLayout>

 

分享到:
评论

相关推荐

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

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

    C# Windows Mobile 读取SIM卡信息

    本主题将深入探讨如何在Windows Mobile 5.0环境下,利用Visual Studio 2008和.NET Compact Framework 2.0(CF2.0)来读取SIM卡的相关信息,包括IMEI、IMSI和ICCID。 **IMEI(国际移动设备识别码)** 是每个移动设备...

    SIM卡数据读取Dome

    3. `SmartCardReader.cs`: 一个类文件,实现了与SIM卡读卡器的通信,包括打开/关闭连接,发送AT命令,读取SIM卡数据等功能。 4. `DataParser.cs`: 解析SIM卡返回的数据,将二进制数据转化为可读的电话簿和短信格式。...

    自动读取SD卡里的图片,并以3D显示

    在Android平台上,实现“自动读取SD卡里的图片,并以3D显示”的功能涉及多个关键技术点,主要包括Android的文件系统访问、图片加载库、图片处理和3D渲染。以下是对这些知识点的详细说明: 1. **Android文件系统访问...

    读取短信并根据短信内容回复短信stm32与sim900A短可识别短信指令并回复用户.zip

    在本项目中,STM32被用作核心处理器,负责读取SIM900A模块接收到的短信内容,并根据内容执行相应指令,然后回复用户。SIM900A是一款GSM/GPRS模块,可以实现语音通话、短信收发以及数据传输功能。 首先,我们需要...

    STM32 的 SIM 卡数据读写

    随着移动通信技术和智能卡技术的飞速发展,使得市场对SIM卡的要求 越来越高,不仅从性能上要求其智能化的程度提高,而且要求其成为个人移 动信息的终端。作为运营商提供服务为基本依托的SIM卡,基于SIM卡的数 据新...

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

    EC20系列模组支持1.8V/3.0V的SIM卡,通过观察SIM_VDD、SIM_DATA、SIM_CLK和SIM_RST的波形变化,可以了解模组在搜索SIM卡过程中的行为。例如,SIM_VDD和SIM_RESET的波形会从1.8V切换至3.0V,然后变为低电平,表明模组...

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

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

    Android代码-SIM卡运营商获取手机号码功能暂时无法实现.zip

    这是因为出于隐私保护和安全考虑,Android系统并未开放直接读取用户手机号码的API接口。开发者通常可以通过以下方式获取部分SIM卡相关的信息: 1. **SIM卡运营商信息获取**: - 使用`SubscriptionManager`类:...

    Android读取用户号码,手机串号,SIM卡序列号的实现代码

    这个权限允许应用程序读取电话的状态,包括设备ID、SIM卡状态以及电话号码等信息。由于涉及到用户隐私,从Android 6.0(API级别23)开始,此权限被视为危险权限,需要在运行时动态请求。 然而,值得注意的是,`...

    sim.c.zip_SIM ADPU_SIM 卡 指令_adpu_串口SIM_银行卡 ADPU

    在本文中,我们将深入探讨SIM ADPU(Application Protocol Data Unit)指令,以及如何通过串口通讯来读取SIM卡ID号。 ADPU指令是SIM卡与智能卡读卡器之间进行通信的一种协议,它定义了数据传输的结构和格式。ADPU由...

    GSM.rar_GSM C51_GSM字符_gsm at command_sim 号码_sms detect

    在这个主题中,我们主要关注的是如何利用C51语言与GSM模块交互,包括发送AT指令、读取SIM卡上的号码以及短信处理。 C51是Microchip公司为8051系列微控制器设计的一种高级语言,它扩展了标准C语言,以便更好地适应...

    Android获取手机通讯录、sim卡联系人及调用拨号界面方法

    在Android平台上,获取手机通讯录和SIM卡联系人,以及调用拨号界面是常见的功能需求,这通常涉及到用户信息的读取和系统的交互。以下将详细解释如何实现这些功能。 首先,要获取手机通讯录的联系人信息,我们需要...

    智能卡读写工具 SIM卡工具

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

    电信设备-SIM卡读取装置及移动终端.zip

    SIM卡读取装置是通信设备中的重要组成部分,主要用于在移动终端如智能手机、平板电脑或物联网设备中读取和处理SIM(Subscriber Identity Module)卡的信息。SIM卡存储了用户的身份识别数据、加密密钥以及运营商网络...

    解SIM卡软件

    解SIM卡软件的工作原理通常是通过读取SIM卡上的数据,然后将这些数据写入另一张空白的SIM卡,实现SIM卡的复制。 "FDv3.0使用说明.doc":这是一个文档文件,详细介绍了FD软件的版本3.0的使用方法。用户可以通过阅读...

    SIM.rar_MTK SIM_mtk_sim

    例如,开发者可能需要读取SIM卡信息,如IMSI(国际移动用户识别码)和ICCID(集成电路卡识别码),或者实现SIM卡锁等功能。 沃勤,又称为Vowin,是一家专注于移动互联网应用开发平台和服务的公司。他们的开发平台...

    将存在SD卡里的TXT文件中的文字读取出来,并显示在TFT屏上.zip

    在电子设备中,如Arduino或树莓派等嵌入式系统,经常需要处理与外部存储设备的交互,例如从SD卡中读取数据并显示在显示屏上。本项目聚焦于从SD卡读取TXT文件并将内容呈现在TFT屏幕上。这涉及到几个关键的技术点: 1...

    电脑通过手机SIM卡收发短信

    标题中的“电脑通过手机SIM卡收发短信”指的是在个人计算机上实现利用手机SIM卡进行短信的发送和接收功能。这种技术通常应用于自动化系统、远程监控或者设备控制等场景,使得PC能够具备通信能力,而无需额外的硬件...

    Android 获取移动网络及SIM卡运营商信息.rar

    Android 获取移动网络及SIM卡运营商信息,可获取到SIM卡国别、SIM卡序列号、SIM卡状态、运营商代号、手机制式等信息。获取各个数据项的值:  listValues.add(tm.getDeviceId());//获取设备编号  listValues.add(tm...

Global site tag (gtag.js) - Google Analytics