这个实现起来比较简单,就不废话了,下面是代码:
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>