android获取SIM卡信息和手机号码

  1. public class PhoneInfoUtils {
  2. private static String TAG = “PhoneInfoUtils”;
  3. private TelephonyManager telephonyManager;
  4. //移动运营商编号
  5. private String NetworkOperator;
  6. private Context context;
  7. public PhoneInfoUtils(Context context) {
  8. this.context = context;
  9. telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
  10. }
  11. //获取sim卡iccid
  12. public String getIccid() {
  13. String iccid = “N/A”;
  14. iccid = telephonyManager.getSimSerialNumber();
  15. return iccid;
  16. }
  17. //获取电话号码
  18. public String getNativePhoneNumber() {
  19. String nativePhoneNumber = “N/A”;
  20. nativePhoneNumber = telephonyManager.getLine1Number();
  21. return nativePhoneNumber;
  22. }
  23. //获取手机服务商信息
  24. public String getProvidersName() {
  25. String providersName = “N/A”;
  26. NetworkOperator = telephonyManager.getNetworkOperator();
  27. //IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。
  28. // Flog.d(TAG,”NetworkOperator=” + NetworkOperator);
  29. if (NetworkOperator.equals(“46000”) || NetworkOperator.equals(“46002”)) {
  30. providersName = “中国移动”;//中国移动
  31. } else if(NetworkOperator.equals(“46001”)) {
  32. providersName = “中国联通”;//中国联通
  33. } else if (NetworkOperator.equals(“46003”)) {
  34. providersName = “中国电信”;//中国电信
  35. }
  36. return providersName;
  37. }
  38. public String getPhoneInfo() {
  39. TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
  40. StringBuffer sb = new StringBuffer();
  41. sb.append(“\nLine1Number = ” + tm.getLine1Number());
  42. sb.append(“\nNetworkOperator = ” + tm.getNetworkOperator());//移动运营商编号
  43. sb.append(“\nNetworkOperatorName = ” + tm.getNetworkOperatorName());//移动运营商名称
  44. sb.append(“\nSimCountryIso = ” + tm.getSimCountryIso());
  45. sb.append(“\nSimOperator = ” + tm.getSimOperator());
  46. sb.append(“\nSimOperatorName = ” + tm.getSimOperatorName());
  47. sb.append(“\nSimSerialNumber = ” + tm.getSimSerialNumber());
  48. sb.append(“\nSubscriberId(IMSI) = ” + tm.getSubscriberId());
  49. return sb.toString();
  50. }
  51. }

AndroidManifest.xml清单文件中加入权限

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

在这里补充下:
手机号码不是所有的SIM卡都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手机号码的数据写入到SIM卡中,能够读取SIM卡号的话应该有前提,那就是SIM卡已经写入了本机号码,不然是无法读取的。具体的什么样的卡能获取到号码,要自己具体测试才可以,就算是同一个运营商同一个套餐的卡也会有差别。

楼主项目用的物联卡就是获取不到号码,然后就用了iccid,下面科普下iccid:
SIM卡正面或者背面总有那么几行数字和字母,20位的,这就是iccid。CCID:Integrate circuit card identity 集成电路卡识别码(固化在手机SIM卡中) ICCID为IC卡的唯一识别号码,共有20位数字组成,其编码格式为:XXXXXX 0MFSS YYGXX XXXXX。

前六位运营商代码:中国移动的为:898600;898602 ,

中国联通的为:898601,中国电信898603

如果还想获取到更多的手机卡信息,可查看TelephonyManager的具体方法

阿里称宏碁受到谷歌压力 临时取消手机发布

来源: 新浪科技
宏碁原定今天联合阿里巴巴发布一款搭载阿里云操作系统的智能手机CloudMobile A800。
宏碁原定今天联合阿里巴巴发布一款搭载阿里云操作系统的智能手机CloudMobile A800

新浪科技讯 9月13日消息,阿里巴巴就与宏碁发布会意外取消发布声明,称宏碁受到来自于谷歌的直接压力,双方合作的新款手机发布会不得不临时取消。

阿里巴巴在声明中称,宏碁接到谷歌方面通知,如果在其新产品上搭载阿里云操作系统,谷歌将会解除与其Android产品的合作和相关技术授权。

负责宏碁公关和传播业务的际横公关工作人员表示,他们接到通知,发布会因为“特殊原因”,临时延期。对于具体原因,该工作人员则坚称对此不知情。

谷歌方面暂未对此做出评价。

按照宏碁和阿里巴巴方面此前给媒体发出的邀请函,今天下午,双方应该会在上海正式发布一款搭载阿里云操作系统的智能手机。

不过,该发布会在正式开始一个多小时前意外取消。(瑞天)

以下为阿里云官方声明:

我们非常遗憾的宣布,因为我们的合作伙伴受到来自于谷歌公司的直接压力,原定于今天下午举行的搭载阿里云操作系统的新款手机发布活动被临时取消。

我们的合作伙伴接到谷歌方面通知,称如果在其新产品上搭载阿里云操作系统,谷歌公司将会解除与其Android产品的合作和相关技术授权。

我们始终相信,阿里云操作系统,可以让消费者和手机生产商拥有更多的选择,这也是市场健康发展并得以壮大的基础。市场拥有最好的淘汰机制。我们理解并尊重我们合作伙伴的决定。

我们向遭受压力的合作伙伴,以及今天来参会的众多业界朋友们表示歉意,同时我们也对谷歌公司的如此作为表示遗憾。

Android 4.0用户份额已达1%

2012-02-03 08:50  牛华网  rocky

据牛华网北京时间2月3日消息,据国外媒体报道,Google刚刚公布了Android系统的用户使用情况。截至2012年2月1日的两周内,访问Android Market的Android手机用户系统分布如下:

*Android 4.0(Ice Cream Sandwich)用户已占1%。当然,这些用户都使用三星Galaxy Nexus;

*Android 3.0 (Honeycomb)用户占3.4%,较前一个月攀升1个百分点;

*Android 2.3(Gingerbread)用户占58.6%,前一个月为55.5%;

*Android 2.2(Froyo)用户下滑3个百分点至27.8%;

*Andoird 2.0(Eclair用户占7.6%,前一个月为8.5%

据统计,Android设备目前日激活量超过70万台。(rocky)

Android界面与交互设计原则

2012-01-19 15:16 来源: 2lazy.org

译者按:

在iOS HIG已经强大经典了N年之后,Android终于推出了一套比较系统的HIG(大概是为了配合Android 4.0 Ice Cream Sandwich)。仔细比较两套HIG的“设计原则”部分,发现完全是截然不同的两种风格。iOS HIG走的是更专业型的路线,描述严谨且有不少的专业词汇(比如Metaphors、Consistency之类的)。而Android则显得亲民许多,不仅描述方式简要易懂,配图鲜明直观,甚至还用了“me”作为了一系列要点的标题,更充分地传达出以用户自身的体验为中心的思路。

设计原则

这些设计原则是由安卓的用户体验团队制定并应用的,以此来保证用户心目中最佳的用户体验。应用开发者应该参考这些设计原则,并将之用于自己的创作与设计,有针对性地在用户体验方面进行实践。

吸引我

以令人惊讶的方式取悦我

漂亮的界面,精心设置的动画,或是恰到好处的声音效果,都是快乐的情感体验。各种细微的效果精妙地组合在一起往往效果惊人,不仅显得轻松明快,更可以营造出丰富强大的氛围。

真实的物件远比按钮和菜单更有趣

使用现实世界中的对象和操作来构建应用中的对象和操作。这样不仅能够帮助用户,尤其是新手,迅速地理解应用程序的操作方法和作用,减少认知成本,同时也使他们能获得更多的情感满足。

把它变成“我的”

人们喜欢添加个性化风格,因为这让他们感觉像在家一样一切尽在掌握,也让这个应用显得和自己一样与众不同。应用应该提供明快合理且漂亮的默认值,同时最好也考虑添加一些有趣但不妨碍主要任务的自定义项目。

了解我

随着使用时间的推移,应用应该了解并记住用户的行为和使用偏好。不要让用户一遍又一遍作出相同的选择,最好能让他们能够方便地使用上一次的选择。

简化我的生活

用语简洁

使用简单的单词和短句进行说明——用户极有可能跳过冗长复杂的句子。

图片比文字更直接

尽量使用图片来进行说明。图片更吸引用户的目光,往往也比文字更有效。

为我选择,但最终是我说了算

智能地推断用户的行为,并推荐相应的解决方案,而不是一开始就询问用户想干嘛——太多的选择和决定让用户烦躁。不过为防万一推荐得不对,记得给出“撤消”操作。

只在我需要的时候显示

同时看到太多的东西让人感到不堪重负,所以最好把复杂的任务和信息分解成一段段的便于操作和理解的步骤。隐藏当前不需要的选项,并让当用户学会在需要时到哪儿去找它们。

我应该知道我在哪里

让用户清楚地知道他们在应用中的位置和操作路径。让你的应用中各个部分看起来区分明确,并在界面切换时使用适当的过渡效果,以表明它们之间的关系。对正在进行的任务提供反馈。

不要丢失我的内容与设置

保存用户花费时间创建的内容与设置,让它们在任何时间任何地点都可以被访问,并在手机、平板电脑和计算机之间保持同步一致。这也可以让升级变得更加容易与方便。

如果它看起来一样,那它的功能也应该一样

尽量使用明显是视觉差异来帮助用户区分功能上的不同。避免使用看上去相同或相似的模式、操作来实现其实并不相同功能。

只在重要的时刻打断我

如同拥有一个优秀的私人助理一样,用户不应该被无关紧要的旁枝末节所打断。人们希望能集中注意力完成手上的任务,除非有十万火急的事情需要处理。任务中的一次打断真是让人觉得费力又沮丧。

让我惊艳

给我各处皆适用的技巧

当用户自己摸索出使用技巧时会感觉非常良好。在你的应用程序里使用其他安卓应用广泛采用的交互技巧——包括相同的视觉模式和肌肉动作,可以让用户更容易上手也更容易获得满足。比如,“轻扫”就是一个在安卓应用中广泛使用的良好的导航快捷手势。

不是我的错

友好礼貌地提醒用户改正错误——在使用你的应用时,用户当然不希望自己显得很蠢。如果出了差错,请清楚简明地给出解决方案,以便用户能够快速地进行修正,避免提及让用户看不懂的技术细节。如果应用能够在后台默默处理那就更好了!

积极反馈

把复杂的任务分解成较小的步骤可以让用户更轻松地完成。给每个行动都提供反馈鼓励,即使只是一个微妙的光芒也会让用户大受鼓舞。

为我完成复杂的任务

让新手使用他们能够做的简单操作,完成他们从未奢望过可以处理的专家级任务。例如,结合多种照片效果的快捷方式,只需几步操作,就可以使业余的照片看起来让人惊艳。

让更重要的事情更快

并非所有的操作都是平等的。决定在你的应用程序什么是最重要的,并让它能更容易更快速地被找到和使用——比如照相机的快门按钮,或是音乐播放器的播放/暂停按钮。

本文编译自羊老师,原文地址

译文出处2lazy.org,转载请注明出处链接。

如何改变Android手机软件的安装位置,一般需要什么步骤?

参考资料网站:机锋网

谷歌Android系统手机默认只能把软件安装在手机内存里,使本来就不大的手机内存显得捉襟见肘。如果你也是个手机软件狂人,喜欢尝试各种各样新奇有趣的软件,面对越来越少的手机内存空间,不得不对已经安装的软件痛下**。你是否还在安装与卸载之间纠结?Follow Me!我们一起来给Android系统扩扩容,让“机器人”也可以“大肚能容”,免去存储空间不足的后顾之忧。


Tips:存储器分为随机存储器(RAM)和只读存储器(ROM)两种。手机ROM相当于PC上的硬盘,用于存储手机操作系统和软件,也叫FLASH ROM,决定手机存储空间的大小。手机RAM相当于PC的内存,其大小决定手机的运行速度。


要把Android系统中把软件安装到SD卡上,很简单,两步就够了:

一、存储卡分区

      首先我们需要对手机SD卡进行分区,分一个FAT32分区和一个Ext3分区,FAT32分区用于正常存储图片、音乐、视频等资料,而Linux格式的Ext3分区就是用于扩容安装软件的分区。以笔者的2G SD卡为例,FAT32分区1.35GB,Ext3分区494MB。下载并安装Acronis Disk Director Suite软件。将手机SD卡装入读卡器并连接电脑,然后运行Acronis Disk Director Suite软件。

      1.FAT32分区。找到代表SD卡的磁盘分区,点击右键,选择“删除”命令,删除已有分区。当成为“未分配”分区时,点击右键,选择“创建分区”,在弹出的对话框中,文件系统选择:FAT32,创建为“主分区”,设置好分区大小1.35GB,点击确定按钮。
      2.Ext3分区。在剩余的494MB分区上,点击右键,选择“创建分区”,在弹出的对话框中,文件系统选择:Ext3,创建为“主分区”,设置好分区大小494MB,点击确定按钮。
      3.确认分区。上述分区设定完成后,软件只是记录了分区操作,并没有真正在SD卡上进行分区。点击软件工具栏中的“提交”按钮,确认执行分区操作,提示“操作成功完成”说明分区成功了。

二、将软件移动到SD卡

      存储卡分区完成后我们只需要把系统默认的软件安装目录/data/app转移到SD卡的Ext3分区上,然后通过ln命令建立软链接,使系统自动把软件安装到SD卡上,达到节省手机内存空间的目的。

将存储卡装回手机,重新启动,使系统识别到Ext3分区。在手机上运行超级终端,依次输入以下命令来验证系统是否识别了Ext3分区:

su  (会提示高级权限授权,选择“总是同意”)
busybox df –h
如果显示的列表中有/dev/block/mmcblk0p2的信息说明系统已成功识别了Ext3分区。

然后依次输入以下命令将/data/app目录转移到SD卡的Ext3分区:
cp –a /data/app /system/sd/ 
(将/data/app目录复制到/system/sd/下)
rm –r /data/app
(删除/data/app目录)
ln –s /system/sd/app /data/app
(建立软链接)
Reboot
(重启手机)


      重启之后,手机上安装的所有软件就全部转移到了SD卡上,看看你的手机可用空间是不是增大了。以后再安装软件也是直接安装到SD卡上,不用担心空间不足的问题了,而且这样做还有一个好处,刷新ROM后,以前安装过的软件并没有被清除,还保存在SD卡上,输入下列命令就可以轻松恢复,不用再一一安装了,非常方便实用。

su
(取得高级权限)
cd /data
(进入/data目录)
cp –a app /system/sd/app
(将app目录中的内容复制到/system/sd/app目录)
rm –r app
(删除app目录)
ln –s /system/sd/app /data/app
(建立软链接)
reboot
(重新启动)
扩容效果体验:
刷新ROM后未安装任何软件,手机可用空间为87MB,安装若干软件后,可用空间下降为73MB。将软件目录转移到SD卡上后,可用空间变为80MB。可能有的“电筒”会有疑惑,为什么没恢复到87MB呢?这是因为我们只是将软件移动到了SD卡上,而软件的缓存数据仍然会占用手机内存,所以手机内存还是会下降。当然软件的缓存数据也可以移动到SD卡上,但这样会拖慢软件运行速度,所以不推荐大家使用。
注意事项:
1.软件移动到SD卡上后,原有的部分桌面插件会无法正常显示,删除后,重新加入桌面即可。
2.SD卡的Ext3分区可以视为手机硬件的一部分,移除SD卡后,安装的软件将无法运行。插入SD卡,重新启动手机即可正常使用。

android sdk 如何重新生成debug.keystore

1)首先你要确定你安装的JDK位置,Windows->Preferences->Java->InstalledJREs,你可以看到是Jre的location,再在doscmd模式下查看你当前系统的path是否已经包含了。如果没有包含添加到当前环境参数中。因为我们要用到的keytool命令在这个目录下呀。

2)接下来就要找到你不前AVD的debug.keystore的位置,windows->perferences->android->build,

default debug keystore文本框中,列出C:\Users\Liyunde\.android\debug.keystore,这就是默认的debug.keystore,你可以先把这个文件改一下名。我们需要创建一个新的debug.keystore

3)紧接着我们来创建一个新的debug.keystore,在cmd下,进入C:\Users\Liyunde\.android目录

执行命令如下:

keytool -genkey -v -keystore debug.keystore -aliasandroiddebugkey -keyalg RSA -validity 10000

输入密码,用户等信息确认后便可生成一个debug.keystore

1

 
2

4)好了,接下来我们就需要获取MD5,去google申请一个apikey,很简单

在当前目录下执行:

keytool -list -alias androiddebugkey -keystoredebug.keystore

根据提示输入你在第三步所设的密码,ok,就会得到下面信息,

Certificate fingerprint (MD5):FC:ED:DE:BS:16:1A:E8:05:F0:44:AD:4E:45:42:4B:D4

这就是我们申请apikey时需要的FC:ED:DE:BS:16:1A:E8:05:F0:44:AD:4E:45:42:4B:D4

3

通过浏览器访问http://code.google.com/intl/zh-CN/android/maps-api-signup.html

在My certificate’s MD5 fingerprint文本框中输入您刚刚获取到的MD5码

点击Generate API Key,当然前提是你的有一个google的账户。

Google 地图 API

Google 代码主页 > Google 地图 API >Google 地图 API 注册

感谢您注册 Android 地图 API 密钥!

您的密钥是:

0VWb_8R4e2TIB8rp7D5Hs8rQ3E_Um_3XryRJo3A

此密钥适用于所有使用以下指纹所对应证书进行验证的应用程序:

25:93:08:C1:02:7D:E3:8D:5E:22:23:13:B5:DD:F4:E2

下面是一个 xml 格式的示例,帮助您了解地图功能:

           <com.google.android.maps.MapView

              android:layout_width="fill_parent"

              android:layout_height="fill_parent"

              android:apiKey="0VWb_8R4e2TIB8rp7D5Hs8rQ3E_Um_3XryRJo3A"

              />

          有关详细信息,请查看 API 文档。

4

Intel的“公版”手机或者平板已可运行Android 4.0

来源:驱动之家  关键词:Intel,手机,平板,Android,4.0 | 作者:ChrisR

据麻省理工《科技创业》(Technology Review)网站报道,Intel在移动互联网市场已经开始反击——此前在IDF曝光的Medfield Atom核心智能手机/平板电脑的操作系统已经可以升至Android 4.0。

Intel的“公版”手机设计方案,实物同样如此

2011年智能手机处理器收入一览,Intel的野心当然是在这个市场称霸

作为Intel旗下首款正式应用SoC技术的芯片,Medfield核心Atom处理器采用32nm工艺制程,首次将Atom的二/三芯片系统合为一体。

成品方面,此前在IDF展示的智能手机/平板电脑设计继续得到沿用,并且将成为Intel的“公版设计”。据Technology Review编辑体验报告,采用Medfield核心的平板电脑厚度、重量都与iPad 2相当但拥有更大的屏幕。同时Android 4.0 Ice Cream Sandwich系统的操作体验也胜于目前在Android平板上广泛使用的Honeycomb 3.x版本。

Intel架构部门副总裁Stephen Smith称,各家厂商可以任意套用Intel的公版设计元素或整体复制,预计Intel将在即将开幕的CES消费电子展上公布关于Medfield核心智能设备的更多内容,正式发布时间应为2012年上半年。

原文出处:驱动之家

当工作烦燥无聊时候看看这个

jiong

世界朋友感恩节特供,喜欢的朋友顶一下哈

 

另送

中国版“弱密码”TOP25出炉:超7成为6位字符

国外安全机构SplashData最近针对英语人群总结出2011年度最烂、最易被盗取的25个“弱密码”。11月22日,国内最大的网络安全厂商360安全中心也发布了《密码安全指南》,并根据国内流行的密码破解字典软件破解列表,整理结出中国网民最常用的25个“弱密码”。

据360安全专家介绍,中国网民常用的TOP25 “弱密码”中,有9个与国外网民使用习惯完全相同。其中,除password、abc123、iloveyou、qwerty等全球网民通用“弱密码”外,其余均为数字组合。而简单的数字组合,似乎更是中国网民最爱,占了榜单近半数。比如“666666”和“888888”这样的吉利数,几乎是所有中国黑客密码字典中的必备项,而“5201314”(我爱你一生一世)显然被国人寄予了浓厚的感情色彩,为中国特色“弱密码”。

据统计,网民常用的“弱密码”主要包括简单数字组合、顺序字符组合、临近字符组合以及特殊含义组合等四大类别。而从中国版“弱密码”榜单来看,国内网民更习惯设置6位字符密码,TOP25中竟有18个是6位字符,所占比例高达72%。此外,“a1b2c3”和“p@ssword”这类组合型密码看似复杂,其实也在黑客重点关注的密码列表中。

360安全专家警告称,如果系统帐号或其他网络帐号采用上述“弱密码”,很容易被黑客利用密码字典自动“蒙中”,从而造成个人隐私信息泄漏甚至财产损失。针对部分用户为系统设置简单“弱密码”的登录习惯,新版360安全卫士增加了“黑客入侵防护”功能,可以为用户检测近千个弱密码,并在系统遭受入侵攻击时提示用户修改高强度密码。

与此同时,360安全中心还针对中国网民密码使用习惯发布了《密码安全指南》,建议网民从以下四个方面保护帐号安全:

第一、尽量使用“字母+数字+特殊符号”形式的高强度密码;

第二、网银、网上支付、常用邮箱、聊天帐号单独设置密码,切忌“一套密码到处用”;

第三、按照帐号重要程度对密码进行分级管理,重要帐号定期更换密码;

第四、避免以生日、姓名拼音、手机号码等与身份隐私相关的信息作为密码,因为黑客针对特定目标破解密码时,往往首先试探此类信息。

1321938511920

图:中国网民最易被黑客破解的前25位“弱密码”

附:国内外网民常用的25个“弱密码”

国内网民常用的25个弱密码包括:000000、111111、11111111、112233、123123、123321、123456、12345678、654321、666666、888888、abcdef、abcabc、abc123、a1b2c3、aaa111、123qwe、qwerty、qweasd、admin、password、p@ssword、passwd、iloveyou、5201314

国外网民常用的25个弱密码包括:password、123456、12345678、qwerty、abc123、monkey、1234567、letmein、trustno1、dragon、baseball、111111、iloveyou、master、sunshine、ashley、bailey、passw0rd、shadow、123123、654321、superman、qazwsx、michael、football

谷歌CEO谈Android未来发展:将继续开放

新浪科技讯 8月15日晚间消息,谷歌刚刚宣布以125亿美元价格收购摩托罗拉移动,对于外界关心的Android手机操作系统今后如何发展的问题,谷歌CEO佩奇明确表示,Android将继续开放,摩托罗拉将继续支持Android。

谷歌今日宣布,已与摩托罗拉移动签署最终协议, 将以每股40美元的现金收购后者,总价约125亿美元,与摩托罗拉移动上周五收盘价相比溢价63%。该交易已经得到两家公司董事会的批准。

市场认为,收购摩托罗拉移动有助于谷歌进一步强化Android生态系统,从而提升在移动计算市场的竞争力。

佩奇在谷歌官方博客发表声明称,“摩托罗拉完全致力于发展Android平台是谷歌收购摩托罗拉的原因之一。”

佩奇表示,该交易不会改变谷歌将Android作为开放平台的立场,Android将继续开放,摩托罗拉将继续支持Android。

他说,交易完成后,摩托罗拉移动将作为谷歌的独立业务继续运营。许多硬件合作伙伴成就了Android的成功,我们期望与他们继续合作,提供更出色的用户体验。