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