现在的位置: 首页 > 综合 > 正文

获取手机信息

2017年11月15日 ⁄ 综合 ⁄ 共 4239字 ⁄ 字号 评论关闭

这个实现起来比较简单,就不废话了,下面是代码:

package com.example.getphoneinfo;

import java.util.List;
import android.support.v7.app.ActionBarActivity;
import android.support.v4.app.ListFragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends ActionBarActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		if (savedInstanceState == null) {
			getSupportFragmentManager().beginTransaction()
					.add(R.id.container, new PlaceholderFragment()).commit();
		}
	}

	/**
	 * A placeholder fragment containing a simple view.
	 */
	public static class PlaceholderFragment extends ListFragment {
		private ListView listView;

		public PlaceholderFragment() {
		}

		@Override
		public View onCreateView(LayoutInflater inflater, ViewGroup container,
				Bundle savedInstanceState) {
			View rootView = inflater.inflate(R.layout.fragment_main, container,
					false);
			return rootView;
		}

		@Override
		public void onActivityCreated(Bundle savedInstanceState) {
			// TODO Auto-generated method stub
			super.onActivityCreated(savedInstanceState);
			listView = getListView();
			listView.setAdapter(new ArrayAdapter<String>(getActivity(),
					android.R.layout.simple_list_item_1, android.R.id.text1,
					getData()));

		}

		private List<String> getData() {
			// TODO Auto-generated method stub
			PhoneInfo phoneInfo = new PhoneInfo(getActivity());
			List<String> list = phoneInfo.getPhoneInfo();
			return list;
		}

		@Override
		public void onCreate(Bundle savedInstanceState) {
			// TODO Auto-generated method stub
			super.onCreate(savedInstanceState);
		}

	}

}

package com.example.getphoneinfo;

import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.telephony.TelephonyManager;

public class PhoneInfo {
	private List<String> list = new ArrayList<String>();
	private TelephonyManager telephonyManager;
	private Context context;

	public PhoneInfo(Context context) {
		this.context = context;
		telephonyManager = (TelephonyManager) context
				.getSystemService(Context.TELEPHONY_SERVICE);
	}

	public List<String> getPhoneInfo() {
		
		/* 手机号 */
		/**
		 * 这个很有可能获取不到,至少我没有获取到
		 */
		list.add("手机号码" + "---->>" + telephonyManager.getLine1Number());

		/* 用于判断手机服务商 */
		/**
		 * 前面3位460是国家
		 * 紧接着后面2位00 02是中国移动
		 * 01是中国联通
		 * 03是中国电信
		 */
		list.add("手机服务商" + "---->>" + telephonyManager.getSubscriberId());
		
		/*
		 * 唯一的设备ID:
		 * 
		 * GSM手机的 IMEI 和 CDMA手机的 MEID.
		 * 
		 * Return null if device ID is not available.
		 */

		list.add("设备ID" + "---->>" + telephonyManager.getDeviceId());
		
		/* 手机位置 */
		
		list.add(String.valueOf("手机位置" + "---->>"
				+ telephonyManager.getCellLocation()));
		/*
		 * 
		 * 电话状态:
		 * 
		 * 1.tm.CALL_STATE_IDLE=0 无活动
		 * 
		 * 2.tm.CALL_STATE_RINGING=1 响铃
		 * 
		 * 3.tm.CALL_STATE_OFFHOOK=2 摘机
		 */

		list.add(String.valueOf("手机状态" + "---->>"
				+ telephonyManager.getCallState()));
		
		
		/* 获取设备软件版本 */
		
		list.add("设备软件版本" + "---->>"
				+ telephonyManager.getDeviceSoftwareVersion());
		
		/* SIM卡状态 */
		/*
		 * 
		 * SIM的状态信息:
		 * 
		 * SIM_STATE_UNKNOWN 未知状态 0
		 * 
		 * SIM_STATE_ABSENT 没插卡 1
		 * 
		 * SIM_STATE_PIN_REQUIRED 锁定状态,需要用户的PIN码解锁 2
		 * 
		 * SIM_STATE_PUK_REQUIRED 锁定状态,需要用户的PUK码解锁 3
		 * 
		 * SIM_STATE_NETWORK_LOCKED 锁定状态,需要网络的PIN码解锁 4
		 * 
		 * SIM_STATE_READY 就绪状态 5
		 */

		list.add("SIM卡状态" + "---->>"
				+String.valueOf(telephonyManager.getSimState()));

		/* 获取SIM卡串号 */
		list.add("SIM卡串号" + "---->>" + telephonyManager.getSimSerialNumber());

		/* 获取网络类型 */
		/*
		 * 
		 * 当前使用的网络类型:
		 * 
		 * 例如: NETWORK_TYPE_UNKNOWN 网络类型未知 0
		 * 
		 * NETWORK_TYPE_GPRS GPRS网络 1
		 * 
		 * NETWORK_TYPE_EDGE EDGE网络 2
		 * 
		 * NETWORK_TYPE_UMTS UMTS网络 3
		 * 
		 * NETWORK_TYPE_HSDPA HSDPA网络 8
		 * 
		 * NETWORK_TYPE_HSUPA HSUPA网络 9
		 * 
		 * NETWORK_TYPE_HSPA HSPA网络 10
		 * 
		 * NETWORK_TYPE_CDMA CDMA网络,IS95A 或 IS95B. 4
		 * 
		 * NETWORK_TYPE_EVDO_0 EVDO网络, revision 0. 5
		 * 
		 * NETWORK_TYPE_EVDO_A EVDO网络, revision A. 6
		 * 
		 * NETWORK_TYPE_1xRTT 1xRTT网络 7
		 */

		list.add("网络类型" + "---->>"
				+ String.valueOf(telephonyManager.getNetworkType()));
		return list;
	}
}

布局文件,这里就不展示Activity的布局了

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.getphoneinfo.MainActivity$PlaceholderFragment" >
	<ListView
	    android:id="@android:id/list"
	    android:layout_gravity="center"
	    android:layout_width="match_parent"
	    android:layout_height="wrap_content"
	    android:padding="10dp"/>

</LinearLayout>

抱歉!评论已关闭.