请选择 进入手机版 | 继续访问电脑版

扫一扫,访问微社区

查看: 1301|回复: 1

读取IMSI的apk

  [复制链接]

6

主题

6

帖子

34

积分

版主

Rank: 7Rank: 7Rank: 7

积分
34
发表于 2019-1-23 09:43:31 | 显示全部楼层 |阅读模式
手机上,通过*#06#可以取到手机的IMEI号,但还没有快捷的方式可以读取IMSI号码。



为此,可以写一个小Android应用程序来实现该目标。主要包括如下几个方面:

权限设置:<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
获取IMSI:String imsi = ((TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId()
(Optional)获取IMEI:String imei = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE).getSubscriberId()


具体代码:

1. AndroidManifest.xml —— 权限
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3.     package="com.flyingbird.imsi"
  4.     android:versionCode="1"
  5.     android:versionName="1.0" >

  6.     <uses-sdk
  7.         android:minSdkVersion="8"
  8.         android:targetSdkVersion="19" />

  9.     <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
  10.         
  11.     <application
  12.         android:allowBackup="true"
  13.         android:icon="@drawable/ic_launcher"
  14.         android:label="@string/app_name"
  15.         android:theme="@style/AppTheme" >
  16.         <activity
  17.             android:name="com.flyingbird.imsi.MainActivity"
  18.             android:label="@string/app_name" >
  19.             <intent-filter>
  20.                 <action android:name="android.intent.action.MAIN" />

  21.                 <category android:name="android.intent.category.LAUNCHER" />
  22.             </intent-filter>
  23.         </activity>
  24.     </application>

  25. </manifest>
复制代码
2. fragment_main.xml —— 定义了一个TextView,用于显示IMSI号码
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

  2.     xmlns:tools="http://schemas.android.com/tools"

  3.     android:layout_width="match_parent"

  4.     android:layout_height="match_parent"

  5.     android:paddingBottom="@dimen/activity_vertical_margin"

  6.     android:paddingLeft="@dimen/activity_horizontal_margin"

  7.     android:paddingRight="@dimen/activity_horizontal_margin"

  8.     android:paddingTop="@dimen/activity_vertical_margin"

  9.     tools:context="com.flyingbird.imsi.MainActivity$PlaceholderFragment" >



  10.     <TextView

  11.         android:id="@+id/imsi_number"

  12.         android:layout_width="wrap_content"

  13.         android:layout_height="wrap_content"

  14.         android:text="@string/default_imsi_number" />



  15. </RelativeLayout>
复制代码

3. strings.xml —— 定义了IMSI的缺省值

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

  2. <resources>



  3.     <string name="app_name">Imsi</string>

  4.     <string name="default_imsi_number">Unknown IMSI</string>

  5.     <string name="action_settings">Settings</string>



  6. </resources>
复制代码


4. MainActivity.java —— 代码部分
  1. package com.flyingbird.imsi;



  2. import android.content.Context;

  3. import android.os.Bundle;

  4. import android.support.v4.app.Fragment;

  5. import android.support.v7.app.ActionBarActivity;

  6. import android.telephony.TelephonyManager;

  7. import android.util.Log;

  8. import android.view.LayoutInflater;

  9. import android.view.Menu;

  10. import android.view.MenuItem;

  11. import android.view.View;

  12. import android.view.ViewGroup;

  13. import android.widget.TextView;



  14. public class MainActivity extends ActionBarActivity {

  15.         private final String TAG = "IMSI";

  16.         TextView imsi = null;

  17.        

  18.     @Override

  19.     protected void onCreate(Bundle savedInstanceState) {

  20.         super.onCreate(savedInstanceState);

  21.         setContentView(R.layout.fragment_main/*activity_main*/);



  22.         /*if (savedInstanceState == null) {

  23.                 getSupportFragmentManager().beginTransaction()

  24.                     .add(R.id.container, new PlaceholderFragment())

  25.                     .commit();

  26.         }*/

  27.         

  28.         imsi = (TextView)findViewById(R.id.imsi_number);

  29.         if (imsi == null) {

  30.                 Log.d(TAG, "Can not find view id");

  31.         } else {

  32.                 TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

  33.                 imsi.setText(telephonyManager.getDeviceId());

  34.         }

  35.     }





  36.     @Override

  37.     public boolean onCreateOptionsMenu(Menu menu) {

  38.         

  39.         // Inflate the menu; this adds items to the action bar if it is present.

  40.         getMenuInflater().inflate(R.menu.main, menu);

  41.         return true;

  42.     }



  43.     @Override

  44.     public boolean onOptionsItemSelected(MenuItem item) {

  45.         // Handle action bar item clicks here. The action bar will

  46.         // automatically handle clicks on the Home/Up button, so long

  47.         // as you specify a parent activity in AndroidManifest.xml.

  48.         int id = item.getItemId();

  49.         if (id == R.id.action_settings) {

  50.             return true;

  51.         }

  52.         return super.onOptionsItemSelected(item);

  53.     }



  54.     /**

  55.      * A placeholder fragment containing a simple view.

  56.      */

  57.     public static class PlaceholderFragment extends Fragment {



  58.         public PlaceholderFragment() {

  59.         }



  60.         @Override

  61.         public View onCreateView(LayoutInflater inflater, ViewGroup container,

  62.                 Bundle savedInstanceState) {

  63.             View rootView = inflater.inflate(R.layout.fragment_main, container, false);

  64.             return rootView;

  65.         }

  66.     }



  67. }
复制代码








上一篇:获取Android设备唯一标识码
下一篇:C# 调用adb command 读取手机型号和IMEI
回复

使用道具 举报

0

主题

0

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2019-9-8 09:26:27 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表