2017-03-28 16 views
0

私はAndroidアプリケーションを開発中です。その中で私は自動的に目的を呼び出すためのユーザーのモバイルSIM番号を取得する必要があります。しかし、私はユーザーの携帯電話番号を取得する際に問題に直面しています。 私はこれを試しました。これらの中アンドロイドでモバイルSIM番号(GSM)を取得する方法

  TelephonyManager telemamanger = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
    String getSimSerialNumber = telemamanger.getSimSerialNumber(); 

    String deviceID = telemamanger.getDeviceId(); 
    String getSimNumber = telemamanger.getLine1Number(); 

この

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

    String network; 
    ConnectivityManager cm = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE); 
    if(cm.getActiveNetworkInfo().getTypeName().equals("MOBILE")) 
     network = "cellnetwork/4G"; 
    else if(cm.getActiveNetworkInfo().getTypeName().equals("WIFI")) 
     network = "wifi"; 
    else 
     network ="na"; 

    String uphone = tm.getLine1Number(); 
    Toast.makeText(getApplicationContext(),uphone+" "+network,Toast.LENGTH_LONG).show(); 

、私は携帯電話の番号を除いて必要なすべての情報を取得しています。 BHIMアプリのように携帯電話の番号を取得する方法はありますか? BHIMアプリでは、携帯電話の番号を自動的に取得しています(シングルSIMであろうとデュアルSIMであろうと)。

答えて

0

確かに!

これらは、SubscriptionManagerとSubscriptionInfoの両方で入手できる情報です。

サードパーティのアプリでどのような権限が必要なのか分かりませんが、これは私の会社の枠組みで私がやっていることです:

private void fillSimNumber(TelephonyManager tm, SubscriptionInfo subscriptionInfo) { 
    final String rawNumber = tm.getLine1Number(subscriptionInfo.getSubscriptionId()); 

    if (!TextUtils.isEmpty(rawNumber)) { 
     mSimNumber.setText(rawNumber); 
    } 
} 

最高の幸運!

+0

このエラーが発生しています。エラー:(79、37)エラー:TelephonyManagerクラスのgetLine1Numberメソッドは、指定された型に適用できません。 必須:引数なし が見つかりました:int 理由:実際の引数リストと正規の引数リストの長さが異なります –

+0

メソッドを使用する前に必ずドキュメントをお読みください。 https://developer.android.com/reference/android/telephony/TelephonyManager.html#getLine1Number() –

+0

指定された型のgetLine1Number()は、アンドロイドフレームワークの隠れたAPIです。だからあなたはシステムアプリではなく、それを使うことができません。 –

関連する問題