`

读取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(国际移动设备识别码)** 是每个移动设备...

    Android 读取SIM卡参数

    ### Android 读取SIM卡参数 #### 概述 在Android开发中,有时我们需要获取SIM卡的相关信息,例如IMSI(国际移动用户识别码)、IMEI(国际移动设备身份码)等,这些信息对于实现某些功能(如网络状态检测、设备唯一...

    vc开发读取手机sim卡联系人源代码

    vc开发读取手机sim卡联系人源代码,方便大家下载,不要资源分。

    GPS定位 SIM信息读取

    在安全方面,读取SIM信息需要相应的权限,例如在AndroidManifest.xml中声明READ_PHONE_STATE权限。未经用户许可,应用程序不能擅自获取这些敏感信息。此外,隐私法规如欧洲的GDPR(通用数据保护条例)要求处理个人...

    自动读取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,然后变为低电平,表明模组...

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

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

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

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

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

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

    获取SIM卡短信内容

    对于大多数设备,SIM卡短信的读取可能需要特定的设备API或者厂商自定义的解决方案。 例如,有些设备提供了一个名为`com.android.providers.telephony.SmsProvider`的自定义Content Provider,可以用来访问SIM卡短信...

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

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

    Sim发短信.rar

    标题中的“Sim发短信”指的是使用SIM卡进行短信发送的技术,这通常涉及到移动通信和编程。在Java开发中,可以通过特定的API或者库来实现这一功能。本教程可能详细介绍了如何利用SIM卡的相关功能,特别是在Java环境下...

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

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

    智能卡读写工具 SIM卡工具

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

    SIM.rar_MTK SIM_mtk_sim

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

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

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

    sim卡管理程序

    1. **SIM卡数据读取**:程序能够读取SIM卡上的各种数据,如电话簿、短消息、服务提供商信息等。 2. **备份与恢复**:用户可以将SIM卡数据备份到电脑或另一张SIM卡,以防数据丢失,并支持数据恢复。 3. **编辑与管理*...

Global site tag (gtag.js) - Google Analytics