`
stone02111
  • 浏览: 214783 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android 获取设备各种信息以及其它

 
阅读更多

做手机开发,想必都希望获取手机号码吧,android中有一个类android.telephony.TelephonyManager提供这个功能。

TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); 
numberText.setText(tm.
getLine1Number());

红色标记函数能够获取本机号码。

除此之外,TelephonyManager类还提供了多种获取手机信息的函数,入imeiimsi等。、

看代码:

package com.pingan.innovation;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.TextView;

public class PhoneInfo extends Activity {
 private TextView numberText;
 private TextView imeiText;
 private TextView onText;
 private TextView snText;
 private TextView imsiText;
 private TextView ssText;
 private TextView ntText;
 
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        numberText = (TextView) findViewById(R.id.numberText);
        imeiText = (TextView) findViewById(R.id.imeiText);
        onText = (TextView) findViewById(R.id.onText);
        snText = (TextView) findViewById(R.id.snText);
        imsiText = (TextView) findViewById(R.id.imsiText);
        ssText = (TextView) findViewById(R.id.ssText);
        ntText = (TextView) findViewById(R.id.ntText);
        TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
        
numberText.setText(tm.getLine1Number
());
        imeiText.setText(tm.
getDeviceId
());
        onText.setText(tm.
getNetworkOperatorName
());
        snText.setText(tm.
getSimSerialNumber
());
        imsiText.setText(tm.
getSubscriberId
());
        ssText.setText(tm.
getNetworkCountryIso
());
        ntText.setText(tm.
getNetworkOperator());

    }
}

以上几个函数分别获取的是:

手机号码、imei、运营商名称、sim卡序列号、IMSIsim卡所在国家、运营商编号。

 

 

 

 

对了,AndroidManifest.xml里面还需加上:<uses-permission android:name="android.permission.READ_PHONE_STATE" />

这样才能有对手机信息的访问权限。

 

不过,经过在HTC Hero真机上的测试,发现获取不到手机号码。

Ophone系统的多普达A6188上测试,同样也取不到手机号码。

 

 

Build bd = new Build(); 

       String model = bd.MODEL;

       TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 

        StringBuilder sb = new StringBuilder(); 

        sb.append("/nDeviceId(IMEI) = " + tm.getDeviceId()); 

        sb.append("/nDeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion()); 

        sb.append("/nLine1Number = " + tm.getLine1Number()); 

        sb.append("/nNetworkCountryIso = " + tm.getNetworkCountryIso()); 

        sb.append("/nNetworkOperator = " + tm.getNetworkOperator()); 

        sb.append("/nNetworkOperatorName = " + tm.getNetworkOperatorName()); 

        sb.append("/nNetworkType = " + tm.getNetworkType()); 

        sb.append("/nPhoneType = " + tm.getPhoneType()); 

        sb.append("/nSimCountryIso = " + tm.getSimCountryIso()); 

        sb.append("/nSimOperator = " + tm.getSimOperator()); 

        sb.append("/nSimOperatorName = " + tm.getSimOperatorName()); 

        sb.append("/nSimSerialNumber = " + tm.getSimSerialNumber()); 

        sb.append("/nSimState = " + tm.getSimState()); 

        sb.append("/nSubscriberId(IMSI) = " + tm.getSubscriberId()); 

        sb.append("/nVoiceMailNumber = " + tm.getVoiceMailNumber()); 

        Log.v("DeviceInfo", sb.toString());

        Log.v("Model", model);

 

 

       this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(

                                Intent.ACTION_BATTERY_CHANGED));//获得电量

 

 

       BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {//广播出电量值

                @Override

                public void onReceive(Context arg0, Intent intent) {

                        batterylevel = intent.getIntExtra("level", 0);

                        updateBatteryStatsBylevel(batterylevel);

                        TitleInfo.batterylevel = batterylevel;

                        Log.i("batterylevel_value", String.valueOf(batterylevel));

                }

        };

 

 

 

package maximyudin.BatteryLevel;

 

import android.app.Activity;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.IntentFilter;

import android.os.Bundle;

import android.widget.TextView;

 

public class BatteryLevel extends Activity {

        private TextView tvBatteryLevel;

       

        private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() {

                @Override

                public void onReceive(Context context, Intent intent) {

                        String action = intent.getAction();

                        if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {

 

                                int level = intent.getIntExtra("level", 0);

                                int scale = intent.getIntExtra("scale", 100);

 

                                tvBatteryLevel.setText("Battery level: "

                                                + String.valueOf(level * 100 / scale) + "%");

                        }

                }

        };

       

        @Override

        public void onResume() {

                super.onResume();

 

                registerReceiver(mBatteryInfoReceiver, new IntentFilter(

                                Intent.ACTION_BATTERY_CHANGED));

        }

 

        @Override

        public void onPause() {

                super.onPause();

 

                unregisterReceiver(mBatteryInfoReceiver);               

        }

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

       

        tvBatteryLevel = (TextView) findViewById(R.id.tvBatteryLevel);

    }

}

 

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

<TextView 

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:id="@+id/tvBatteryLevel" android:text="Battery level:"/>

</LinearLayout>

分享到:
评论

相关推荐

    Android 获取设备信息

    首先,Android提供了`Build`类,它是位于`android.os`包中的一个静态类,用于获取设备的各种构建信息。`SetBuild`可能是指设置或获取构建信息的过程。让我们逐一了解`Build`类中的一些重要字段和方法: 1. **设备...

    Android 极速获取局域网在线设备信息

    通常,我们使用ARP(Address Resolution Protocol)协议来获取设备的物理地址(MAC地址)对应于其IP地址。在Android中,我们可以使用`Socket`或`MulticastSocket`来发送ICMP请求,探测网络中其他设备的存在。然而,...

    获取Android设备常见硬件信息

    在Android系统中,获取设备的硬件信息是开发者和普通用户都可能需要的操作。这涉及到对设备的CPU(中央处理器)、内存(RAM)、ROM(只读存储器)以及摄像头等核心硬件组件的理解。以下是对这些硬件信息的详细说明:...

    Android获取实时连接热点的设备IP

    "Android获取实时连接热点的设备IP" Android获取实时连接热点的设备IP是指在Android系统中获取当前热点连接的设备IP地址的相关技术。主要涉及到Android系统中获取Wifi热点设备的Ip地址的代码实现。 知识点一:/...

    获取Android设备信息

    在Android应用开发中,获取设备信息是常见的需求,这包括硬件特性、系统版本以及设备状态等。以下是一些关于如何获取这些信息的关键知识点。 1. **Android设备ID**: Android设备具有唯一的设备标识符,如IMEI...

    Android-史上最全、最完整,获取设备信息、获取手机唯一标识

    在Android开发中,获取设备信息和手机唯一标识是常见的需求,尤其在进行用户风险控制时。这篇文章将深入探讨如何在Android系统中获取这些关键数据。 首先,了解Android设备信息包括但不限于以下几点: 1. **设备...

    【Android】获取设备的基本服务信息

    在Android开发中,获取设备的基本服务信息是相当重要的,它能帮助开发者了解设备的状态,以便更好地适配和优化应用。本文将深入探讨如何在Android平台上获取这些信息,并提供一个简单的Demo示例,参考链接为...

    Android获取连接热点的设备信息ip、mac信息

    Android获取连接热点的设备信息ip、mac信息

    Android_获取设备基本服务信息

    以下是对Android获取设备基本服务信息的详细讲解。 1. **设备状态获取** Android提供`Build`类来获取设备的基本信息,如设备型号、制造商、版本号等。例如,`Build.MODEL`返回设备模型,`Build.MANUFACTURER`返回...

    Android应用获取设备序列号的方法

    Android studio 2.1.2 Android 5.1.1 前言 上一篇介绍了如何获取ethernet的MAC地址,对于厂商来讲,除了MAC号,还有一项数据也很重要,那就是机器序列号,它是机器出厂时确定的,也是主要标识,每台机器都不一样。 要想...

    android硬件信息获取样例

    `Build.MANUFACTURER`则可以单独获取设备制造商,如"Samsung"。 4. 其他硬件信息: 除了CPU和内存,还可以获取其他硬件信息,如电池状态、GPU型号等。电池状态通过`BatteryManager`类,GPU信息则可能需要使用第三...

    Android设备获取唯一标识码的方法

    在Android系统中,开发者经常需要获取设备的唯一标识码来实现一些特定的功能,例如用户跟踪、数据同步或者设备注册等。然而,随着Android系统的更新,为了保护用户隐私,获取设备唯一标识的方式也在不断变化。本篇...

    Android获取cpu,内存,磁盘使用率信息

    在Android平台上,获取CPU、内存和磁盘使用率信息对于开发者来说是十分重要的,这有助于监控设备性能,优化应用运行,以及提供用户友好的反馈。然而,由于Android系统的安全机制,不同的权限级别决定了你能获取到何...

    获取android设备信息

    在Android开发中,获取设备信息是一项基础且重要的任务,它涉及到设备硬件、操作系统以及应用程序的适配和优化。本文将详细讲解如何通过编程的方式获取Android设备的各种信息。 首先,我们来了解一下Android设备的...

    查看Android USB设备信息

    调用`getDeviceList()`方法获取所有已连接的设备,然后遍历`UsbDevice`对象以获取设备信息,如`getDeviceName()`、`getVendorId()`、`getProductId()`等。 6. **USB权限管理**:Android 3.1及以上版本引入了USB访问...

    Android 使用html5得到手机设备信息

    "JavaApk源码说明.txt"可能包含了关于如何在Android项目中集成HTML5代码和PhoneGap库的指导,而"phoneGap2ShowDevice2"可能是PhoneGap的一个示例项目,展示如何使用`device`插件来获取设备信息。`device`插件提供了`...

    获取android设备已安装应用信息(包名、图标、应用名)

    在Android平台上,获取已安装应用的信息是开发过程中常见的需求,这可以帮助我们构建各种功能,比如应用管理、推荐系统或是分析用户行为。本文将详细讲解如何通过编程方式获取Android设备上已安装应用的包名、应用...

    Android获得设备状态信息、Mac地址、IP地址的方法

    在APP开发时,经常会遇到要获取手机状态信息的场景,像升级时获取版本号,像发生异常时要收集手机信息等等。有些软件还要根据Mac地址来判定当前用户以前是否登录过。下面将一一介绍获取这些手机状态信息的方法。 1 ...

    Android应用源码之使用html5得到手机设备信息的.rar

    总之,这个源码示例提供了Android与HTML5结合的一个实例,帮助开发者了解如何在Android应用中利用HTML5 API获取设备信息,并通过JavaScript接口与Android原生代码交互。通过学习和实践,开发者可以掌握混合开发技巧...

Global site tag (gtag.js) - Google Analytics