今天!!!对,就是就是今天,,,,我终于换手机啦啦啦,四儿子拿到手啦...虽然是个二手货,不过人家他爸也不卖了,只能买二手货了,五儿子那凸凸的摄像头和价格又有点难以下咽。
嗯.....新机子到手,折腾一番是必须的,先是恢复出厂设置,刷机就不必了,本身就是android4.4.2了。话说剪的卡是各种蛋疼,插进入居然没反应,用室友的MX3上的SIM也插进去也是,没反应。然后呢,然后百度谷歌,答案是,剪的卡因为磁条太大,和卡托上的两边的金属碰到了。
解决办法:卡托两边的压住SIM卡的两根金属条贴上胶带即可,一定要贴准确,不能多不能少,这个是个细致活....嗯,相当细致,搞了快一个小时....
好吧,下面开始正题:
碰到一个问题,我想删掉SIM卡里200多条的联系人,何解???android原生版本本身好像不支持管理SIM卡联系人的操作,只有从SIM卡导出联系人的选项,不晓得有木有人了解的。
俺好像不太喜欢下软件,除了必备的几款软件之外。今天QQ又一次莫名其妙被盗,搞的我心理慌慌。软件更加不敢下了(虽然,应该不是手机软件的问题,但是之前在Windows Phone 8 上面玩那什么劳什子的山寨版的 像素鸟,结果不小心点到了广告,两分钟后好友电话打来,QQ被盗,乱发消息。:(
嗯,正式进入正题:解决办法:自己写一个管理联系人的小工具不就行了呗。
然后就是百度谷歌开始找资料,如下:
        http://blog.csdn.net/voiceofnet/article/details/7760323
        http://blog.csdn.net/qq435757399/article/details/7947847
两个链接需要结合起来用
首先,添加权限:
这个很重要,老是忘记,导致老是报错
有两个权限:“读权限和写权限“:
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
我是在Fragment下面进行的操作,所以代码略微会有点不同:
其次,xml布局文件:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent" android:layout_height="match_parent"><LinearLayout android:id="@+id/menu_frame"android:layout_width="match_parent" android:layout_height="match_parent"android:orientation="vertical"><Button android:id="@+id/btnSelect" android:layout_width="match_parent"android:layout_height="wrap_content" android:text="查看SIM卡联系人" /><Button android:id="@+id/btnDelect" android:layout_width="match_parent"android:layout_height="wrap_content" android:text="删除SIM卡联系人"/><TextView android:id="@+id/textView" android:layout_width="wrap_content"android:layout_height="match_parent" android:text="Demo"android:textSize="12sp" android:layout_centerInParent="true" /></LinearLayout>
</ScrollView>

java文件:

 @Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// inflate the layoutView view = inflater.inflate(R.layout.fragment_text, null);textView = (TextView) view.findViewById(R.id.textView);btnSelect = (Button) view.findViewById(R.id.btnSelect);btnDelete = (Button) view.findViewById(R.id.btnDelect);btnSelect.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {
//我发现开了线程还是会阻塞UI线程,不晓得是什么原因,难道?我需要用AsyncTask?或者是Handler来处理。
//因为忙着玩新手机,所以我暂时也不深究了,哈哈,慢慢来,四儿子想了它一年多了。new Thread(new Runnable() {@Overridepublic void run() {SimQuery();//执行查询操作}}).start();textView.setText(messageString);}});btnDelete.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {new Thread(new Runnable() {@Overridepublic void run() {SimDelete();//执行删除操作}}).start();textView.setText("删除成功!");}});return view;}

相关查询联系人和删除联系人的操作:

private void SimQuery() {//SIM的provider是IccProvider,IccProvider的Uri是content://icc/adnUri uri = Uri.parse("content://icc/adn");Cursor cursor = getActivity().getContentResolver().query(uri, null,null, null, null);Log.v("MAIN", "-----------" + cursor.getCount());while (cursor.moveToNext()) {String id = cursor.getString(cursor.getColumnIndex(People._ID));String name = cursor.getString(cursor.getColumnIndex(People.NAME));String phoneNumber = cursor.getString(cursor.getColumnIndex(People.NUMBER));messageString += "id:" + id + "  name:" + name + "  phoneNumber:"+ phoneNumber + "\n\r";Log.v("MAIN", "--->>>_id: " + id + "--->>>name:" + name+ "--->>>phone number:" + phoneNumber + "\n\r");}cursor.close();//注意一定要close
}private void SimDelete() {Uri uri = Uri.parse("content://icc/adn");Cursor cursor = getActivity().getContentResolver().query(uri, null,null, null, null);Log.v("MAIN", "------------->>>>>" + cursor.getCount());while (cursor.moveToNext()) {String name = cursor.getString(cursor.getColumnIndex(People.NAME));String phoneNumber = cursor.getString(cursor.getColumnIndex(People.NUMBER));String where = "tag='" + name + "'";where += " AND number='" + phoneNumber + "'";getActivity().getContentResolver().delete(uri, where, null);}cursor.close();//注意一定要close
}

关于修改联系人和插入联系人的操作,大家就请移步链接吧,如果我有这个需要,我就会写出来的。

不过谁需要呢...除非为了换成功能机,黑白屏的那种,会需要用SIM卡联系人,否则,智能机,现在到处给你这里备份那里备份的,又是谷歌备份,又是豌豆荚,又是什么QQ同步助手,人家备份都支持头像的,SIM又不支持头像,设置了大半天的联系人头像,在SIM卡里跟本就不起作用,而且一个姓名对应一个号码,如果一个姓名下面有多个号码,那就给你来个复制粘贴....
嗯...不吐槽了。保持好心情。
周末了终于可以见到俺家妹子了,还是很开心的,一起泡泡图书馆神马的最开心了。买手机的事情还没跟她说叻....会挨骂的....唉,算了,哥哥挺的过去。
哎呀,补充一个内容,今天弄了下SlidingMenu,还是很好玩的。打算用这个做我的第二个应用,名曰:Mr.傅的自白
    相关学习链接:http://my.eoe.cn/kris/archive/1605.html   http://my.eoe.cn/kris/archive/1688.html
最近看的书:《Android程序设计》难度有点啊...特别是Java那块,Java这么难么....有点忧虑啊。
再PS:很开心啊,上首页了上首页了有图有真相:
给链接给链接:http://blog.csdn.net/fu222cs98/article/details/21053491
Mr.傅:学习笔记
欢迎转载,转载注明出处,谢谢

Android学习之——操作SIM卡联系人相关推荐

  1. Android SIM卡联系人操作总结

    --- by Ruiming.Lv 在Android中,对SIM中的联系人进行操作,需要通过系统提供的Content Provider进行,该Provider就是Telphony中的IccProvid ...

  2. android sim卡联系人存储格式,Android SIM卡联系人的增删改查操作

    手机在存储联系人时支持存储到手机或者sim卡,本文主要讲述Android的sim卡中联系人是如何操作的. 1.权限 由于操作联系人的信息,所以联系人的读取和写入是必不可少的. 2.URI URI的创建 ...

  3. android负责sim卡的应用,android读取sim卡联系人

    SIM的provider是IccProvider.既然是provider,就和操作Contact的provider类似的,只是有一些微小差别. IccProvider的Uri是content://ic ...

  4. android中对sim卡联系人的增删改查以及监听sim卡联系数据的改变

    sim卡联系人的增删改查主要是通过ContentProvider来进行操作的,在android中对sim卡联系人操作的provider是定义在IccProvider.java这个类中的,这个类位于an ...

  5. android sim卡联系人存储格式,如何在Android设备上将联系人复制到SIM卡

    如何将联系人复制到SIM卡 以下部分是将联系人从计算机和Android手机存储卡复制到Android上的SIM卡的简单步骤.准备?让我们开始吧. 步骤1.安装并运行此Android管理器 开始时,在您 ...

  6. android获取sim卡手机号码,Android 读取SIM卡联系人

    Android 5.0之前的版本中,系统只支持单卡,可以使用URI -- content://icc/adn 读取到sim卡里的联系人.附:IccProvider(4.4.4_r1) Android ...

  7. android sim卡联系人存储格式,Android获取手机通讯录、sim卡联系人及调用拨号界面方法...

    android获取手机通讯录联系人信息 private void getPhoneContacts() { ContentResolver resolver = this.getContentReso ...

  8. 查询SIM卡联系人——源码流程简介

    查询SIM卡联系人 查询SIM卡中的联系人使用的方法为 query( ) 方法,与操作数据库中的查询方法极其类似,使用方式与如下类似: getContentResolver().query(" ...

  9. 安卓手机快速删除所有SIM卡联系人

    安卓手机快速删除所有SIM卡联系人 方法一: 1. 打开[联系人] 2.点击[Menu]键 3.选择[查看] 4.在[联系人来源]中只钩选[SIM]--钩选选完按[确定] 5.这时联系人页面中就只显示 ...

最新文章

  1. np.random.seed用法
  2. java 怎么中断一个线程
  3. 职责链模式 php,php Chain of Responsibility 职责链模式
  4. [转载]WPF – 使用触发器
  5. modnet是一个无需绿幕,扣人像,笔记本上跑到10-20帧
  6. django-oscar的物流状态pending修改以及分析源码解决报错:The new status 'xxx' is not valid for this order
  7. HyperVolume多目标评价指标概述
  8. dd 转换和拷贝复制文件
  9. C/C++教程 第十七章 —— MFC开发多人聊天室
  10. 太极助手发公开信解释越狱捆绑原因
  11. 支付行业常用名词解释
  12. Linux 各类软件整理汇总
  13. JS+CSS实现幻灯片
  14. MAC版SecureCRT+SecureFX 安装说明
  15. 软件开发流程:软件运维流程
  16. word怎么加入html,Word中怎么放入html
  17. 搜狗语音云开发入门(二)——使用离线语音识别服务
  18. 最全面的安卓编码规范
  19. [nlp] LLS减少学习捷径:分析和缓解伪特征标签相关性
  20. dr.oracle素颜霜好用吗,Dr.Glamour素颜霜BB霜哪个好用?这几个误千万不要踩

热门文章

  1. Python3 print pprint
  2. 问题 E: 1.10 旅行时间  根据火车的出发时间和到达时间,编写程序计算整个旅途所用的时间。
  3. jupyter notebook第七章seaborn库的一些案例分析加相关函数的解析
  4. spark 客户端工具_星火应用商店 Spark-Store
  5. cd命令回到上级目录和回到根目录
  6. Openstack基础架构
  7. CentOS6.5下使用NetHogs监控进程网络使用情况
  8. Variant类型在各语言中的参数传递
  9. MNN实践[C++版本]
  10. InstallShield 2010集成.net Framework 4的安装包制作