35

セルで使用しているSIMカードの連絡先番号を表示するアプリケーションを作成する必要があります。そのために私はTelephonyManagerクラスを使用する必要があります。その使用法の詳細を入手できますか?

4

6 に答える 6

65

これを行うにはTelephonyManagerを使用できます。

TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 
String number = tm.getLine1Number();

ドキュメントにgetLine1Number()は、番号が「使用不可」の場合にこのメソッドが返されると記載されnullていますが、番号が使用不可になる可能性がある場合は記載されていません。

マニフェストに以下を追加して、このクエリを実行するためのアプリケーション権限を付与する必要があります。

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

これは文書化されていないプライベートAPI呼び出しであり、将来変更される可能性があるため、を使用TelephonyManager.getDefault()して取得しないでください。)TelephonyManager

于 2010-02-05T13:23:55.183 に答える
6

こんにちは実際これは私の同じ質問ですが、何も得られませんでした。今、私は特定のAndroid実デバイス(Android Mobile)から携帯電話番号と彼の電子メールIDを取得しました。現在、90%の人がAn​​droidMobileのアプリアプリケーションを使用しています。今、私はこのWhat'sappAPIを介してMobilenoとemail-IDを取得しています。使用は非常に簡単です。以下のコードを参照してください。

            AccountManager am = AccountManager.get(this);
            Account[] accounts = am.getAccounts();
      for (Account ac : accounts) 
       {
        acname = ac.name;

        if (acname.startsWith("91")) {
            mobile_no = acname;
        }else if(acname.endsWith("@gmail.com")||acname.endsWith("@yahoo.com")||acname.endsWith("@hotmail.com")){
            email = acname;
        }

        // Take your time to look at all available accounts
        Log.i("Accounts : ", "Accounts : " + acname);
    }

このAPIをインポートします

    import android.accounts.Account;
    import android.accounts.AccountManager;
于 2013-11-13T06:41:32.653 に答える
3

セルで使用しているSIMカードの連絡先番号を表示するアプリケーションを作成する必要があります。そのためには、テレフォニーマネージャークラスを使用する必要があります。その使用法の詳細を入手できますか?

はい、テレフォニーマネージャーを使用する必要があります。連絡先がまったく見つからない場合は、いいえ。ユーザーの; 同じテレフォニーマネージャークラスを使用して、SimカードのSimシリアル番号とAndroidデバイスのImei番号を取得できます...

権限を追加します:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

輸入:

import android.telephony.TelephonyManager;

以下のコードを使用してください。

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

         // get IMEI
         imei = tm.getDeviceId();

         // get SimSerialNumber
         simSerialNumber = tm.getSimSerialNumber();
于 2014-01-29T06:25:59.540 に答える
1

さて、すべてが一時的なハッキングである可能性がありますが、ユーザーの携帯電話番号を取得する方法はありません。それは倫理的方針に反します。

たとえば、上記の回答の1つは、すべてのアカウントを取得してそこから抽出することを提案しています。そして、それはもう機能しません!これらはすべてハックのみです。

ユーザーの携帯電話番号を取得する唯一の方法は、オペレーターを経由することです。Aitel、Vodafoneなどの携帯電話会社と提携している場合は、モバイルネットワークインターネット経由で接続すると、携帯電話からのリクエストのヘッダーでユーザーの携帯電話番号を取得できます。

特定の権限を取得するために提携しているメーカーが役立つかどうかはわかりません。この分野については調査していませんが、少なくとも文書化されているものはありません。

于 2016-10-28T05:27:37.370 に答える
0

場合によっては、オペレーターへのUSSDリクエストで電話番号を取得できます。たとえば、* 116#をダイヤルして電話番号を取得できます。これは、USSDの応答を何らかの方法でキャッチできれば、おそらくアプリ内で実行できます。もちろん、これは配布されるアプリ内で使用することをお勧めする方法ではありません。コードはオペレーター間で異なる場合もあります。

于 2011-12-18T11:51:54.010 に答える
-2

多くの人が言ったように:

String phoneNumber = TelephonyManager.getDefault().getLine1Number();

利用できるかどうかは、携帯通信会社とSIMカードでの番号のエンコード方法によって異なります。SIMを製造している会社または携帯電話会社自体によってハードコーディングされている場合。これは、[設定]->[電話について]と同じように返されます。

于 2011-11-14T13:46:13.093 に答える