Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取用户sim卡号码android_Android_Android Settings - Fatal编程技术网

获取用户sim卡号码android

获取用户sim卡号码android,android,android-settings,Android,Android Settings,在我的应用程序中,我想获取用户的sim卡号码(如果存在),我尝试了以下代码,但返回“” 所需许可 <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 我到处都在搜索,想找到一种获取用户sim卡号码的方法,但没有任何效果。有人说,用户的sim卡提供商可能对此功能有限制,但我使用的imo应用程序可以获取我的sim卡号码并在应用程序中显示,所以我在同一部手机上尝试了不同的方法,但没有任何效果,如果

在我的应用程序中,我想获取用户的sim卡号码(如果存在),我尝试了以下代码,但返回“”

所需许可

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


我到处都在搜索,想找到一种获取用户sim卡号码的方法,但没有任何效果。有人说,用户的sim卡提供商可能对此功能有限制,但我使用的imo应用程序可以获取我的sim卡号码并在应用程序中显示,所以我在同一部手机上尝试了不同的方法,但没有任何效果,如果有人知道工作方法,请告诉我。

步骤1:在AndroidManifest.xml中添加所需的权限

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

查看更多信息首先,我建议您使用共享首选项,您只需将其存储并在您的应用程序中随时随地使用即可。我想这是最简单的方法

试着登记

电话-->设置-->关于-->


手机身份,如果你能在那里查看号码,那么可能你就能得到号码。但是,如果您无法在设置中查看电话号码,则无法通过此代码获取。

在清单中启用权限,获取您的SMI号码和Imei号码

Java

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
如果SMI编号返回null,请从whatsapp获取

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


AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccounts();

ArrayList<String> googleAccounts = new ArrayList<String>();
for (Account ac : accounts) {
    String acname = ac.name;
    String actype = ac.type;
    // Take your time to look at all available accounts
    System.out.println("Accounts : " + acname + ", " + actype);
}
if(actype.equals("com.whatsapp")){
    String phoneNumber = ac.name;
}

AccountManager am=AccountManager.get(这个);
Account[]accounts=am.getAccounts();
ArrayList googleAccounts=新的ArrayList();
用于(账户ac:账户){
字符串acname=ac.name;
字符串actype=ac.type;
//花点时间查看所有可用的帐户
System.out.println(“账户:“+acname+”,“+actype”);
}
if(actype.equals(“com.whatsapp”)){
字符串phoneNumber=ac.name;
}

无法获取Sim卡号码。你可以想,如果你的应用程序可以得到你的电话号码,那么所有的应用程序都可以得到。我是怎么做到的?@RoShan Shan这不是电话号码,而是14位数字的sim号码。试试
tMgr.getSimSerialNumber()
。我想他想得到电话号码
String mPhoneNumber=tMgr.getLine1Number()我不需要序列号,我需要sim/电话号码,在这里我可以发送短信来验证用户的身份。返回空字符串您的设备型号是什么。?检查此选项是的。尝试了它,它显示未知,我只是想知道imo应用程序如何在同一时间访问我的号码device@Martin那么我认为你的应用程序是不可能的Martin先生,尝试以下方法:TelephonyManager telemanger=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);字符串getSimSerialNumber=telemanger.getSimSerialNumber();字符串getSimNumber=telemanger.getLine1Number();它给出了一个错误“无法解析符号oneTelephonyManager”传递您的活动,如下所示:TelephonyManager tManager=(TelephonyManager)getActivity().getSystemService(Context.TELEPHONY_SERVICE);
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
  public class MainActivity extends AppCompatActivity {
     Activity mActivity; 
     String mStatus;
    private TextView mSmiTxt;

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mActivity = MainActivity.this;
        mSmiTxt = (TextView) this.findViewById(R.id.smitxt);
mStatus=loadSMI1();
 mSmiTxt.setText(mStatus);

            /** Fading Transition Effect */
            overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
        }
      /**
         * Called when the 'loadIMEI' function is triggered.
         */
        public void loadIMEI() {
            // Check if the READ_PHONE_STATE permission is already available.
            if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
                    != PackageManager.PERMISSION_GRANTED) {
                // READ_PHONE_STATE permission has not been granted.
                requestReadPhoneStatePermission();
            } else {
                // READ_PHONE_STATE permission is already been granted.
                loadImei();
            }
        }
      public String getDeviceUniqueID() {
            String device_unique_id = Settings.Secure.getString(getContentResolver(),
                    Settings.Secure.ANDROID_ID);
            return device_unique_id;
        }

        private void requestReadPhoneStatePermission() {
            if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                    Manifest.permission.READ_PHONE_STATE)) {
                // Provide an additional rationale to the user if the permission was not granted
                // and the user would benefit from additional context for the use of the permission.
                // For example if the user has previously denied the permission.
                new AlertDialog.Builder(MainActivity.this)
                        .setTitle("Permission Request")
                        .setMessage(getString(R.string.permission_read_phone_state_rationale))
                        .setCancelable(false)
                        .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                                //re-request
                                ActivityCompat.requestPermissions(MainActivity.this,
                                        new String[]{Manifest.permission.READ_PHONE_STATE},
                                        MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
                            }
                        })
                        .setIcon(R.drawable.error)
                        .show();
            } else {
                // READ_PHONE_STATE permission has not been granted yet. Request it directly.
                ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE},
                        MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
            }
        }
     /**
         * Callback received when a permissions request has been completed.
         */
        @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
                                               @NonNull int[] grantResults) {

            if (requestCode == MY_PERMISSIONS_REQUEST_READ_PHONE_STATE) {
                // Received permission result for READ_PHONE_STATE permission.est.");
                // Check if the only required permission has been granted
                if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    // READ_PHONE_STATE permission has been granted, proceed with displaying IMEI Number
                    //alertAlert(getString(R.string.permision_available_read_phone_state));
                    loadImei();
                } else {
                    alertAlert(getString(R.string.permissions_not_granted_read_phone_state));
                }
            }
        }
     public String loadImei() {
            //Have an  object of TelephonyManager
            TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
            //Get IMEI Number of Phone  //////////////// for this example i only need the IMEI
            String IMEINumber = tm.getDeviceId();
            return IMEINumber;
        }
     private void alertAlert(String msg) {
            new AlertDialog.Builder(MainActivity.this)
                    .setTitle("Permission Request")
                    .setMessage(msg)
                    .setCancelable(false)
                    .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            // do somthing here
                        }
                    })
                    .setIcon(R.drawable.error)
                    .show();
        }

     public String loadSMI1() {
            TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
            String sim1 = tm.getLine1Number();
            return sim1;
        }


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


AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccounts();

ArrayList<String> googleAccounts = new ArrayList<String>();
for (Account ac : accounts) {
    String acname = ac.name;
    String actype = ac.type;
    // Take your time to look at all available accounts
    System.out.println("Accounts : " + acname + ", " + actype);
}
if(actype.equals("com.whatsapp")){
    String phoneNumber = ac.name;
}