Zie*_*bhi 6 android phone-number telephonymanager
我已经developped一个Android应用程序,但我需要get the phone number的the phone owner.我在stackoverflow中看到了很多问题和许多答案,但没有一个对我有用.
我使用的是Android 2.2:
我测试了这段代码,但没有发生任何事情:
TelephonyManager phoneManager = (TelephonyManager)
getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber = phoneManager.getLine1Number();
Run Code Online (Sandbox Code Playgroud)
我在我的清单文件中添加了权限READ_PHONE_STATE,在我的设置中我看不到电话号码:/

我知道我可以使用一个独特的ID,getDeviceId() 但如果可能的话,我会得到号码电话..你能提供更多信息吗?有想法得到电话号码?
编辑:在我的国家,我们可以使用USSD命令查看我们的号码,结果是在dialogBox中,我可以读取USSD响应中的数据吗?
我已经测试了这段代码,但没有得到:
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String encodedHash = Uri.encode("#");
String ussd = "*141*1" + encodedHash;
startActivityForResult(new Intent("android.intent.action.CALL",
Uri.parse("tel:" + ussd)), 1);
}
});
Run Code Online (Sandbox Code Playgroud)
.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
Toast.makeText(getApplicationContext(),
"USSD: " + requestCode + " " + resultCode + " ", 1).show();
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
// String result=data.getStringExtra("result");
String dd = data.toString();
Toast.makeText(getApplicationContext(), dd, 1).show();
}
}
Run Code Online (Sandbox Code Playgroud)
我还测试了一些例子,结果是:
Android doesn't support USSD service
Run Code Online (Sandbox Code Playgroud)
帮助PLZ?
正如您所发现的那样,通过我猜您已经看过的许多问题和答案,没有可靠的方法来获取此信息:
TelephonyManager.getLine1Number()通常返回null,但是在罕见的手机上它实际上返回了其他内容,因为它从SIM返回原始电话号码,因此无法接受答案,由于电话号码可移植性很少是电话号码手机目前正在使用
到弓寻求通过WhatsApp的使用的帐户名是一个有趣的方法,如果安装了WhatsApp. 不幸的是,现在已停止工作 - WhatsApp不再使用经过验证的电话号码创建Android帐户作为帐户名称.
许多需要此信息的应用程序都会进行往返短信交换,因为外发短信将携带电话号码.(虽然如果你这样做,请注意许多人反对支付短信的费用,这可能是一个高价的国际短信,所以很可能会在Play商店给你一个糟糕的评论).
请注意,虽然在西方市场并不常见,但是有越来越多的双卡Android手机(包括新的诺基亚X),因此手机和手机号码之间没有1:1的对应关系.如果您的应用程序在没有电话号码的平板电脑上运行,您也会遇到问题.
| 归档时间: |
|
| 查看次数: |
1955 次 |
| 最近记录: |