0

我正在创建一个关于通话记录的应用程序,我偶然发现了这个想法。现在,从电话拨号器拨打的电话和从设备上安装的 voip 软件拨打的电话也作为通话记录出现,我正在猜测,因为只要按下 Voip 上的通话按钮,Voip 软件就会调用电话拨号器。现在我正在考虑一种消除 voip 呼叫的解决方案,我想出了这个想法,但我不知道它是否可行。

现在是否可以获取用于特定呼叫的 SIM 卡序列号?

这是我正在使用的代码行。

        Telly=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    simSerialNumber=Telly.getSimSerialNumber();
    Cursor Logs_query=managedQuery(CallLog.Calls.CONTENT_URI, null, null, null, null);
    int number=Logs_query.getColumnIndex(CallLog.Calls.NUMBER);

我将不胜感激建议和代码方面的帮助。

4

3 回答 3

1

现在是否可以获取用于特定呼叫的 SIM 卡序列号?

不,您无法区分日志来自哪个拨号程序。

通话记录内容提供者不保存插入记录的拨号器的信息。

于 2012-03-22T09:19:30.820 回答
0

如果您运行该代码,您现在有任何结果或异常吗?你设置了权限READ_PHONE_STATE吗?这是使用该getSimSerialNumber()方法所必需的。

于 2012-03-22T09:04:48.953 回答
0

您必须使用电话管理器;如果您根本没有找到联系电话。用户的;您可以使用相同的电话管理器类获取 SIM 卡的 SIM 序列号和 Android 设备的 Imei 号...

添加权限:

进口:

import android.telephony.TelephonyManager;

使用以下代码:

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

     // get IMEI
     imei = tm.getDeviceId();

     // get SimSerialNumber
     simSerialNumber = tm.getSimSerialNumber();
于 2014-01-29T06:33:18.210 回答