趙雅智_android擷取本機電訊廠商,手機號部分能擷取,趙雅智_android

來源:互聯網
上載者:User

趙雅智_android擷取本機電訊廠商,手機號部分能擷取,趙雅智_android

手機號碼不是所有的都能擷取。只是有一部分可以拿到。

這個是由於行動電信業者沒有把手機號碼的資料寫入到sim卡中.SIM卡只有唯一的編號,供網路與裝置 識別那就是IMSI號碼,手機的訊號也可以說是通過這個號碼在網路中傳遞的,並不是手機號碼。

試想,你的SIM丟失後,補辦一張新的會換號碼嗎?

是不會 的.就是因為在你的手機號碼對應的IMSI號 在行動電信業者中被修改成新SIM卡的IMSI號碼。 

那麼手機號為什麼有的就能顯示呢? 這個就像是一個變數,當行動電信業者為它賦值了,它自然就會有值。不賦值自然為空白。 

國內sim卡存的是imsi號,沒有電話號碼存在機器上。只有當你和基站發生聯絡後,由電訊廠商給你分配號碼。


但是我也寫了一個類實現擷取電訊廠商

布局檔案:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:gravity="center"    android:orientation="vertical" >    <TextView        android:id="@+id/tv_num"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <TextView        android:id="@+id/tv_privoid"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <Button        android:id="@+id/getSIMInfo"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:onClick="click"        android:text="擷取手機號碼等資訊" >    </Button></LinearLayout>


SIMCardInfo.java:

/** * @author yazhizhao * 20142014-10-22上午9:13:04 */package com.example.android_sms;import android.content.Context;import android.telephony.TelephonyManager;import android.util.Log;/** * @author yazhizhao 20142014-10-22上午9:13:04 */public class SIMCardInfo {/** * TelephonyManager提供裝置上擷取通訊服務資訊的入口。 應用程式可以使用這個類方法確定的電信服務商和國家 以及某些類型的使用者訪問資訊。 * 應用程式也可以註冊一個監聽器到電話收狀態的變化。不需要直接執行個體化這個類 * 使用Context.getSystemService(Context.TELEPHONY_SERVICE)來擷取這個類的執行個體。 */private TelephonyManager telephonyManager;private String IMSI;// 國際移動使用者識別碼public SIMCardInfo(Context context) {telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);}/** * 擷取當前設定的電話號碼 *  * @author yazhizhao 20142014-10-22上午9:44:19 * @return */public String getNativePhoneNumber() {String NativePhoneNumber = null;NativePhoneNumber = telephonyManager.getLine1Number();return NativePhoneNumber;}/** * 擷取手機服務商資訊 需要加入許可權<uses-permission * android:name="android.permission.READ_PHONE_STATE"/> *  * @author yazhizhao 20142014-10-22上午9:44:31 * @return */public String getProvidersName() {String ProvidersName = null;// 返回唯一的使用者ID;就是這張卡的編號神馬的IMSI = telephonyManager.getSubscriberId();// IMSI號前面3位460是國家,緊接著後面2位00 02是中國移動,01是中國聯通,03是中國電信。Log.i("MainActivity", "IMSI" + IMSI);if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {ProvidersName = "中國移動";} else if (IMSI.startsWith("46001")) {ProvidersName = "中國聯通";} else if (IMSI.startsWith("46003")) {ProvidersName = "中國電信";}return ProvidersName;}}


MainActivity.java

package com.example.android_sms;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.TextView;/** * 注意許可權 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> *  * @author yazhizhao 20142014-10-22上午9:18:04 */public class MainActivity extends Activity {private TextView number;private TextView privoid;private String TAG = "MainActivity";@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);number = (TextView) this.findViewById(R.id.tv_num);privoid = (TextView) this.findViewById(R.id.tv_privoid);}public void click(View v) {SIMCardInfo siminfo = new SIMCardInfo(MainActivity.this);Log.i(TAG, "電訊廠商" + siminfo.getProvidersName());Log.i(TAG, "電話" + siminfo.getNativePhoneNumber());number.setText(siminfo.getNativePhoneNumber());privoid.setText(siminfo.getProvidersName());}}

運行效果:







聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.