效果
代码
package com.example.test2.myapplication.service; import android.Manifest; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.ActivityCompat; import android.support.v7.app.AppCompatActivity; import android.telephony.TelephonyManager; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.example.test2.myapplication.R; import java.util.ArrayList; import java.util.Map; /** * Created by Derek on 2017/2/18. * 使用TelephonyManager(手机电话管理器服务)获取网络和sim卡信息 * 权限: * <uses-permission android:name="android.permission.READ_PHONE_STATE"/> * <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> */ public class TelephonyStatus extends AppCompatActivity implements View.OnClickListener { private Button get; private TextView message; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.telephonystatus); //申请权限 requestPermission(); initView(); } private void requestPermission() { String[] needPermissions={ Manifest.permission.READ_PHONE_STATE, Manifest.permission.ACCESS_COARSE_LOCATION, }; ActivityCompat.requestPermissions(this,needPermissions,1); } private void initView() { get = (Button) findViewById(R.id.get); message = (TextView) findViewById(R.id.message); get.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.get: ArrayList<Map<String, String>> status = new ArrayList<>(); StringBuilder stringBuilder = new StringBuilder(); //获取手机电话管理器 TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); //获取设备编号 String deviceId = telephonyManager.getDeviceId(); stringBuilder.append("deviceId=").append(deviceId).append("\n"); //获取系统平台的版本 String SoftwareVersion = telephonyManager.getDeviceSoftwareVersion() != null ? telephonyManager.getDeviceSoftwareVersion() : "未知"; stringBuilder.append("SoftwareVersion=").append(SoftwareVersion).append("\n"); // 获取网络运营商代号 String networkOperator = telephonyManager.getNetworkOperator(); stringBuilder.append("networkOperator=").append(networkOperator).append("\n"); //获取网络运营商名称 String networkOperatorName = telephonyManager.getNetworkOperatorName(); stringBuilder.append("获取网络运营商名称=").append(networkOperatorName).append("\n"); //获取手机网络类型 int phoneType = telephonyManager.getPhoneType(); stringBuilder.append("phoneType=").append(phoneType).append("\n"); //获取设备所在位置 String cellLocation = telephonyManager.getCellLocation() != null ? telephonyManager.getCellLocation().toString() : "未知位置"; stringBuilder.append("获取设备所在位置=").append(cellLocation).append("\n"); //获取sim卡的国别 String simCountryIso = telephonyManager.getSimCountryIso(); stringBuilder.append("获取sim卡的国别=").append(simCountryIso).append("\n"); //获取sim卡序列号 String simSerialNumber = telephonyManager.getSimSerialNumber(); stringBuilder.append("获取sim卡序列号=").append(simSerialNumber).append("\n"); int simState = telephonyManager.getSimState(); stringBuilder.append("simState=").append(simState).append("\n"); Log.d("GsonUtils", "stringBuilder="+stringBuilder.toString()); message.setText(stringBuilder.toString()); break; } } }
布局xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/get" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="获取网络和sim信息"/> <TextView android:id="@+id/message" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="TextView" android:textColor="#0f0" android:textSize="26dp"/> </LinearLayout>
AndroidManifest.xml
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
。。。