使用ContactsContract检测我自己的电话号码

时间:2015-11-17 10:28:54

标签: android phone-number contactscontract

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

看起来像这样:

 @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();
                }
            }
        }
    }

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

我能得到它吗?

1 个答案:

答案 0 :(得分:0)

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

但是您需要将电话号码存储在SIM卡上,而且没有办法获取您自己的号码。

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

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

  2. 您正在阅读手机中的所有电话号码。所以比较一下,得到其他细节。