如何以编程方式获取运行我的Android应用程序的设备的电话号码?

时间:2016-03-31 06:06:06

标签: android telephonymanager

我在app工作。我需要以编程方式获取电话号码。 我按照link

进行操作

但我在一台设备上获得了电话号码,很多时候我没有得到。有任何完美的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以尝试这一点但不确定所有设备。 它仅适用于某些设备。

public static String getPhoneNumber(Context context) {
    String s1="";
    String main_data[] = {"data1", "is_primary", "data3", "data2", "data1",
            "is_primary", "photo_uri", "mimetype"};
    Object object = context.getContentResolver().
            query(Uri.withAppendedPath(android.provider.ContactsContract.Profile.CONTENT_URI, "data"),
                    main_data, "mimetype=?",
                    new String[]{"vnd.android.cursor.item/phone_v2"},
                    "is_primary DESC");

    if (object != null) {
        do {
            if (!((Cursor) (object)).moveToNext())
                break;
            // This is the phoneNumber
            s1 =((Cursor) (object)).getString(4);
        } while (true);
        ((Cursor) (object)).close();
    }
    return  s1;
}