手机的基本信息分两类,一类是与电话有关的信息,另一类是设备自身的信息。 与电话有关的信息可由TelephonyManager类获得,常用的参数与对应的方法如下所示: 网络运营商名称 : getNetworkOperatorName 网络运营商编号 : getNetworkOperator,返回五位数字,前三位表示国家代码(中国的为460),后两位表示运营商代码(中国移动为0,中国联通为1,中国电信为2) 手机类型 : getPhoneType 网络类型 : getNetworkType获得细分类型,getNetworkClass获得大类如2G/3G/4G SIM卡状态 : getSimState SIM卡运营商名称 : getSimOperatorName SIM卡运营商编号 : getSimOperator SIM卡序列号 : getSimSerialNumber IMSI : getSubscriberId IMEI : getDeviceId 手机号码 : 实测发现多数情况下getLine1Number和getMsisdn都无法正确取到号码,但是很多APP又需要用户的手机号,那又得想办法获取号码,获取的方法大致有如下几种: 1、用户首次使用,提示用户注册手机号,然后保存起来,下次就能取到手机号了; 2、APP自动用该手机发一条免费短信(比如向10086发),然后到发件箱中寻找该短信的发送号码; 3、如果能连到运营商的支撑系统,那么根据IMSI去后台系统查询手机号,这也是可以的; 设备自身的信息可由Build类获得,常用的参数与对应的方法如下所示: 手机厂商 : Build.MANUFACTURER 手机品牌 : Build.BRAND 手机型号 : Build.MODEL 设备名称 : Build.DEVICE CPU指令 : Build.CPU_ABI 芯片型号 : Build.HARDWARE 手机序列号 : Build.SERIAL SDK版本 : Build.VERSION.SDK_INT 系统版本 : Build.VERSION.RELEASE 版本代号 : Build.VERSION.CODENAME
常用的设备功能主要有:屏幕自动旋转、亮度自动调节、飞行模式开关、GPS开关、蓝牙开关、WLAN开关、数据连接开关、闪光灯/手电筒开关。各功能的设置途径各不相同,废话少说,直接上代码:
看完了代码,总结一下功能开关的注意事项: 1、开启或关闭飞行模式,除了修改Settings,还得发送广播通知系统完成其他处理,因为开启飞行模式得同时关闭wifi、数据连接、蓝牙等功能。但是只有系统应用才能发送广播,普通app发送广播会提示无权限。 2、定位不等于GPS,定位包括GPS定位和网络定位,因此若要判断定位功能是否开启,得同时判断GPS定位和网络定位都不可用才是定位关闭。 3、开关闪光灯/手电筒借助了Camera类,不过Camera不能多次打开,否则会报错无效连接,所以在工具代码中要把Camera做成单例模式,确保每次使用Camera都只Open一次。
上面可在代码中直接设置的仅仅是些基本的设备功能,还有更多的系统管理需要在专门的系统设置界面来完成。这些无法在我们代码中完成的工作,就得跳到系统设置页面,由用户去手工操作。下面是具体设置页面与Action的对应关系: 系统应用Settings中的设置 系统设置页面 : Settings.ACTION_SETTINGS 应用管理页面 : Settings.ACTION_APPLICATION_SETTINGS 存储管理页面 : Settings.ACTION_MEMORY_CARD_SETTINGS或者Settings.ACTION_INTERNAL_STORAGE_SETTINGS 显示设置页面 : Settings.ACTION_DISPLAY_SETTINGS 声音/铃声设置页面 : Settings.ACTION_SOUND_SETTINGS (有的手机是情景设置页面) 日期设置页面 : Settings.ACTION_DATE_SETTINGS 定位设置页面 : Settings.ACTION_LOCATION_SOURCE_SETTINGS 同步设置页面 : Settings.ACTION_SYNC_SETTINGS 输入法设置页面 : Settings.ACTION_INPUT_METHOD_SETTINGS 系统应用Phone中的设置 通话设置页面 : 按如下方式跳转(有的手机不在这个路径)
打电话调用系统的拨号应用即可,示例代码如下:
发短信有两种方式,分别是手工发送和自动发送,手工发送是调用系统的短消息应用,自动发送则是调用SmsManager的相关API。使用SmsManager类有三个注意点: 1、因手机短信有长度限制,故需对过长的短信内容进行拆分,具体是调用SmsManager类的divideMessage方法; 2、SmsManager同时支持短短信和长短信两种方式,发送短短信调用的是sendTextMessage方法,发送长短信调用的是sendMultipartTextMessage方法。长短信虽然在发送时也需要拆分,但对方收到的是一条完整的短信;另外,长短信方式可以只发送一次广播,而短短信方式每发一条短信就会发送一次广播。 3、如果需要处理短信发送成功通知事件和短信接收成功事件,则需确保打开发送短信的完全权限,不是那种还需提示的不完整权限,不然不但收不到广播,连短信都无法发送了。
发邮件需要调用手机上的其他邮件客户端,如QQ邮箱,这样发送时在列表中选择QQ邮箱才能完成邮件发送操作,示例代码如下:
打电话、发短信、发邮件的完整代码例子如下:
通过前面对设备的基本操作介绍,可看到Android四大组件各显神通,各组件协同配合完成了许多功能。具体的组件使用分类如下: 1、Activity:包括拨号(Intent.ACTION_CALL)、手工发短信(Intent.ACTION_SENDTO)、发邮件(Intent.ACTION_SEND)、系统设置页面(Settings.ACTION_SETTINGS)以及其他分项设置页面。 2、Service:包括获取子系统服务的管理器,如电话管理器TelephonyManager(Context.TELEPHONY_SERVICE)、定位管理器LocationManager(Context.LOCATION_SERVICE)、蓝牙管理器BluetoothAdapter(BLUETOOTH_MANAGER_SERVICE)、WLAN管理器WifiManager(Context.WIFI_SERVICE)、数据连接管理器ConnectivityManager(Context.CONNECTIVITY_SERVICE)。 3、Broadcast:包括开关飞行模式、开关GPS、自动发送短信的发送成功通知与接收成功通知。 4、ContentProvider:包括通过ContentResolver获取与开关的功能,如屏幕自动旋转、亮度自动调节、飞行模式等等。 由于操作设备涉及到一些系统层面与硬件层面的交互,因此需要给APP赋予相关的权限,这样才能合法的使用系统服务与硬件设施。本节中用到的权限主要有:
以上就是本篇文章【Android开发笔记(五十五)手机设备基本操作查手机「Android开发笔记(五十五)手机设备基本操作」】的全部内容了,欢迎阅览 ! 文章地址:http://w.yusign.com/news/11879.html 资讯 企业新闻 行情 企业黄页 同类资讯 首页 网站地图 返回首页 述古往 http://w.yusign.com/mobile/ , 查看更多