Android 电话管理器TelephonyManager,获取网络,SIM卡信息

本文主要是介绍Android 电话管理器TelephonyManager,获取网络,SIM卡信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

// 获取系统TelephonyManager对象
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

AndroidManifest.xml

package shortcut.song.com.myapplication;import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.ListView;
import android.widget.SimpleAdapter;import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;public class TelephonyStatusActivity extends AppCompatActivity {ListView showView;// 声明代表状态名的数组String[] statusNames;// 声明代表手机状态的集合ArrayList<String> statusValues = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_telephony_status);// 获取系统TelephonyManager对象TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);// 获取各种状态名称的数组statusNames = getResources().getStringArray(R.array.statusNames);// 获取代表SIM卡状态的数组String[] simState = getResources().getStringArray(R.array.simState);// 获取代表电话网络类型的数组String[] phoneType = getResources().getStringArray(R.array.phoneType);// 获取设备编号statusValues.add(telephonyManager.getDeviceId());// 获取系统平台的版本statusValues.add(telephonyManager.getDeviceSoftwareVersion() != null? telephonyManager.getDeviceSoftwareVersion(): "Unknow!");// 获取网络运营商代号statusValues.add(telephonyManager.getNetworkOperator());// 获取网络运营商名称statusValues.add(telephonyManager.getNetworkOperatorName());// 获取手机网络类型statusValues.add(phoneType[telephonyManager.getPhoneType()]);// 获取设备所在位置statusValues.add(telephonyManager.getCellLocation() != null ? telephonyManager.getCellLocation().toString() : "Unknow Location!");// 获取SIM卡的国别statusValues.add(telephonyManager.getSimCountryIso());// 获取SIM卡序列号statusValues.add(telephonyManager.getSimSerialNumber());// 获取SIM卡状态statusValues.add(simState[telephonyManager.getSimState()]);// 获得ListView对象showView = (ListView) findViewById(R.id.phone_show);ArrayList<Map<String , String>> status =new ArrayList<Map<String , String>>();//遍历statusValues集合,将statusNames、statusValues//的数据封装到List<Map<String , String>>集合中for(int i = 0 ; i < statusValues.size() ; i++){HashMap<String, String> map =new HashMap<String , String>();map.put("name" , statusNames[i]);map.put("value" , statusValues.get(i));status.add(map);}// 使用SimpleAdapter封装List数据SimpleAdapter adapter = new SimpleAdapter(this, status, R.layout.telephony_line, new String[]{"name" , "value"}, new int[]{R.id.name , R.id.value});// 为ListView设置AdaptershowView.setAdapter(adapter);}
}

这篇关于Android 电话管理器TelephonyManager,获取网络,SIM卡信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144136

相关文章

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边

android-opencv-jni

//------------------start opencv--------------------@Override public void onResume(){ super.onResume(); //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是 //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存