using System;

using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Android.Telephony;//需要引用这个命名空间 namespace GetPhoneInfodemo
{
[Activity(Label = "GetPhoneInfodemo", MainLauncher = true, Icon = "@drawable/icon")]
public class Activity1 : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle); // Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main); // Get our button from the layout resource,
// and attach an event to it
TelephonyManager telphoneMgr = (TelephonyManager)GetSystemService(Context.TelephonyService);
string Imei = telphoneMgr.DeviceId;//IMEI号.需要READ_PHONE_STATE权限
string PhoneType = telphoneMgr.PhoneType.ToString();//手机网络制式,例如GSM
string str0 = telphoneMgr.NetworkType.ToString();//网络模式 "Hspa"
string PhoneNum = telphoneMgr.Line1Number;//手机号
string SdkVersion = telphoneMgr.DeviceSoftwareVersion;//IMEI SV
string ReleaseVersion = telphoneMgr.NeighboringCellInfo.ToString();//未知,安卓是获取周围基站的信息 getNeighboringCellInfo
//需要ACCESS_COARSE_LOCATION权限
string str1 = telphoneMgr.CallState.ToString();//电话状态:CALL_STATE_IDLE=0无活动,CALL_STATE_RINGING=1响铃24,CALL_STATE_OFFHOOK=2摘机
CellLocation str2 = telphoneMgr.CellLocation;//电话定位
DataActivity str3 = telphoneMgr.DataActivity;
TextView txtimei = FindViewById<TextView>(Resource.Id.imei);
txtimei.Text = Imei;
//button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };
}
}
}

调试android程序出现异常:

java.lang.SecurityException:requires READ_PHONE_STATE

根据异常提示,发现是手机的设备号获取失败

异常原因:AndroidMinifest.xml中没有添加READ_PHONE_STATE权限

解决法案:修改AndroidMinifest.xml,在<application/>之后添加权限设置

Androidmainfest.xml代码

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

总结:Security 英文翻译“安全,安全的”, 顾名思义SecurityException就是指安全异常,容易联想到是权限限

制导致的异常,手机软件对权限的限制是很多的,后面requires READ_PHONE_STATE一目了然就是要求READ_PHONE_STATE

这个权限

另外在虚拟机如果获取不到部分信息,请到真实机子调试.

java翻译到mono C#实现系列(3) 获取手机设备信息(残缺,)的更多相关文章

  1. java通过浏览器请求头(User-Agent)获取访问者设备信息以及系统版本

    个人博客 地址:http://www.wenhaofan.com/article/20181125220342 在开发AutuBlog项目时需要做后台的登录记录,想起浏览器的User-Agent,于是 ...

  2. java翻译到mono C#实现系列(4) 利用CountDownTimer类实现倒计时功能 mono版

    群里的朋友问利用CountDownTimer类实现倒计时功能怎么实现,我就百度了,参考http://blog.csdn.net/qq344429461/article/details/7521361写 ...

  3. java翻译到mono C#实现系列(2) mono实现GridView 横向滚动

    群里的朋友问GridView 横向滚动怎么实现,我就百度了,参考http://blog.csdn.net/lonely_fireworks/article/details/7841134写了个mono ...

  4. java翻译到mono C#实现系列(1) 重写返回键按下的事件

    今天看到群里的朋友问怎么按下返回键的时候提示信息,百度了下,就参考网上一个java版示例做了.没啥技术含量,就权当丰富下mono for android的小代码. 直接在mono新建的APP上修改的. ...

  5. Windows下USB磁盘开发系列三:枚举系统中U盘、并获取其设备信息

    前面我们介绍了枚举系统中的U盘盘符(见<Windows下USB磁盘开发系列一:枚举系统中U盘的盘符>).以及获取USB设备的信息(见<Windows下USB磁盘开发系列二:枚举系统中 ...

  6. 通过java的Runtime.getRuntime()和System.getProperties()来获取系统的信息

    第一种,通过Runtime.getRuntime()来获取系统信息. 通过java来获取系统以下的信息: 主机名: OS 名称:         OS 版本: OS 制造商: OS 配置: 独立工作站 ...

  7. Java并发包源码学习系列:阻塞队列BlockingQueue及实现原理分析

    目录 本篇要点 什么是阻塞队列 阻塞队列提供的方法 阻塞队列的七种实现 TransferQueue和BlockingQueue的区别 1.ArrayBlockingQueue 2.LinkedBloc ...

  8. [翻译svg教程]svg学习系列 开篇

    目录 [翻译svg教程]svg学习系列 开篇 [翻译svg教程 ]svg 的坐标系统 [翻译svg教程]svg 中的g元素 [翻译svg教程]svg中矩形元素 rect [翻译svg教程]svg中的c ...

  9. java从入门到卖肠粉系列

    java从入门到卖肠粉系列 注:本教程只是从JAVA基础开始,绝对不会跟公司有任何利益冲突,更不会出现一行公司项目的代码 QQ群:9547527 推荐用土豆,百度去上传太慢,百度云在线播放还要转码.. ...

随机推荐

  1. WebDriver高级应用——操作Web页面的滚动条

    目的: (1)滑动页面的滚动条到页面最下方 (2)滑动页面的滚动条到页面某个元素 (3)滑动页面的滚动条向下移动某个数量的像素 测试的网址: http://www.seleniumhq.org/ 代码 ...

  2. update chnroute

    curl -0 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | grep ipv4 | grep CN | awk ...

  3. Git Note - git tag

    git tag is used to create labels, usually for version numbers. Format: git tag <TagName> <r ...

  4. jenkins启动失败,提示Starting Jenkins Jenkins requires Java8 or later, but you are running 1.7.0

    # 背景 centos安装jenkins后,先启动jenkins服务,结果报错如下: 但自己明明已经安装了java8的 # 解决方法 既然安装了java8的话,那么证明是jenkins启动的是还是用的 ...

  5. pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

    # 背景 安装pip后发现执行pip install pytest,提示下面错误 pip is configured with locations that require TLS/SSL, howe ...

  6. VUE 学习笔记 一 指令

    1.声明式渲染 v-bind 特性被称为指令.指令带有前缀 v-,以表示它们是 Vue 提供的特殊特性 <div id='app'> <span v-bind:title=" ...

  7. Python 定制类 特殊方法

    1.特殊方法 定义在class中 不需要直接调用,python的某些函数或操作符会自动的调用对应的特殊方法. 如定义了person类,使用print p 语句打印person类的实例时,就调用了特殊方 ...

  8. mysql 判断表字段或索引是否存在 - 举一反三

    判断字段是否存在: DROP PROCEDURE IF EXISTS schema_change; DELIMITER // CREATE PROCEDURE schema_change() BEGI ...

  9. C#上传文件处理

    public class FileHelp : System.Web.UI.Page { /// <summary> /// 保存文件 /// 返回:数组:status[0]:文件名称:s ...

  10. java异常术语

    .检查性异常: 不处理编译不能通过 .非检查性异常:不处理编译可以通过,如果有抛出直接抛到控制台(所有RuntimeException的派生类都是非检查型异常) .非运行时异常: 就是检查性异常4.运 ...