android - 我们如何在android中获取任何设备的手机号码
问题描述
我正在使用这种方法来获取设备号。
TelephonyManager telemamanger = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String getSimNumber = telemamanger.getLine1Number();
但此方法仅适用于 android 7.0而不适用于 6.0 和 8.0 请建议我如何在 Android 6.0 和 8.0 版本中获取手机号码
解决方案
private void showContacts() {
// Check the SDK version and whether the permission is already granted or not.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.READ_CONTACTS}, PERMISSIONS_REQUEST_READ_CONTACTS);
//After this point you wait for callback in onRequestPermissionsResult(int, String[], int[]) overriden method
} else {
String main_data[] = {"data1", "is_primary", "data3", "data2", "data1", "is_primary", "photo_uri", "mimetype"};
Object object = 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");
String s1="";
if (object != null) {
do {
if (!((Cursor) (object)).moveToNext())
break;
// This is the phone Number
s1 = ((Cursor) (object)).getString(4);
Log.i("TestMOB",s1);
} while (true);
((Cursor) (object)).close();
}
}
}
希望这会帮助你:)
推荐阅读
- javascript - MomentJS/Date 对象默认 UTC
- flask - jinja2 在烧瓶 wt-form 上循环
- r - ggplot如何在x和y坐标中放置标题
- jenkins-pipeline - 有什么方法可以在不使用额外插件的情况下将变量从 bash 脚本传递到 Jenkinsfile
- keycloak - 当 keycloak 保护的容器副本高于 1 时,错误重定向过多
- python - 在没有 One Hot 编码的情况下将分类数据转换为数值数据
- python-3.x - 在列表中重新搜索
- c++ - 如何使用 c++ 在 socket.io 中接收数据
- sparql - 我想使用来自 dbpedia 的 sparql 查询来获取类似类型的名称
- google-chrome-extension - 如何在 Chrome 扩展中使用 tabs.executeScript 传递参数(insertHTML 的值)