【问题标题】:Detect my own phone number using ContactsContract使用 ContactsContract 检测我自己的电话号码
【发布时间】:2016-02-18 16:27:17
【问题描述】:

我创建了一个类来查找我的联系人中的电话号码。

看起来像这样:

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
        if(resultCode == RESULT_OK){
            if(requestCode == 1){
                Uri returnUri = data.getData();
                Cursor cursor = getContentResolver().query(returnUri, null,null,null, null);

                if(cursor.moveToNext()){
                    //get ID
                    int columnIndex_ID = cursor.getColumnIndex(ContactsContract.Contacts._ID);
                    String contactID = cursor.getString(columnIndex_ID);
                    //get name
                    String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                    name.setText(contactName);

                    int columnIndex_HASPHONENUMBER = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
                    String hasPhoneNumber = cursor.getString(columnIndex_HASPHONENUMBER);

                    if(hasPhoneNumber.equals("1")){
                        Cursor cursorNum = getContentResolver().query(
                                ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactID,
                                null,
                                null
                        );
                        //get the first phone number
                        if(cursorNum.moveToNext()){
                            int columnIndex_number = cursorNum.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
                            String stringNumber = cursorNum.getString(columnIndex_number);
                            phoneNumber.setText(stringNumber);
                        }
                    }else{
                        phoneReceiver.setText("No Phone Number");
                    }
                }else{
                    Toast.makeText(ActivityPager.this,"No Data!", Toast.LENGTH_SHORT).show();
                }
            }
        }
    }

但是,在我看来,我需要在当前使用的设备中获取当前电话号码。

我可以得到它吗?

【问题讨论】:

    标签: android phone-number contactscontract


    【解决方案1】:

    这只是一个建议。如果您想从设备中获取联系人姓名和详细信息,您可以执行以下操作。

    但是您需要将电话号码存储在 SIM 卡上,并且没有其他方法可以获取您的“自己的号码”。

    1. 使用电话管理器从 SIM 中读取电话号码。

      TelephonyManager tm = (TelephonyManager)this.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE); String myPhoneNumber = tm.getLine1Number();

    2. 您正在读取手机中的所有电话号码。所以比较一下并获取其他详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      相关资源
      最近更新 更多