- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最近我在尝试使用 Android 设备获取相邻小区的信息。而且我试过很多品牌的安卓手机,比如三星,htc。结果只是Htc可以得到邻区信息。我使用的函数是 TelephonyMananger.getNeiboringCellInfo()。但是正如Android API的文档所说,当我想获取3G基站的cell id和信号强度时,我只能获取信号强度值,而所有相邻的cell id都是-1。所以我改变了我的方法。但是当我使用 TelephonyManager.getAllCellInfo() 时,该方法总是返回一个空对象。之前有人问过这个问题,答案是这个方法的执行总是返回null。在这里,我的问题是我们是否可以获取3G基站的邻区信息?我们是否可以像 getNeighboringCellInfo() 一样自己实现 getAllCellInfo() 方法?还有其他方法可以获取3G邻区信息吗?
最佳答案
Android 提供了三种获取手机信息的不同方式:
onCellLocationChanged
:GSM/UMTS 和 CDMA,仅限于当前(服务)小区。getNeighboringCellInfo
:仅限 GSM/UMTS,将获取相邻小区,但并非所有设备都支持onCellInfoChanged
:支持所有网络类型,但需要 API 17,并非所有设备都支持此外,前两个不会返回 MCC/MNC(国家和运营商代码),您需要从 TelephonyManager 单独获取。
getNeighboringCellInfo
只会为您提供一个标识符:GSM 的 LAC/CID 对,或 UMTS 的 PSC。 (PSC 在细胞的直接环境中是独一无二的。)
onCellInfoChanged 可能不会返回所有单元格类型。这取决于设备 - 有些设备将使用 onCellLocationChanged
用于 GSM/UMTS 小区,并通过 onCellInfoChanged
仅报告 LTE 小区。
在这里,您几乎完全受制于设备(或其 ROM)。您唯一可以依赖的是第一种和第三种方法的组合将为您提供服务小区。
如果上述方法之一不起作用,则应用程序无能为力。您需要构建自己的 ROM,可能还需要构建 RIL 驱动程序甚至基带固件。在这三层中的任何一层上,开发人员可能已经决定向上层报告附近的小区是不值得的。
关于Android API 17 TelephonyManager.getAllCellInfo() 和 TelephonyManager.getNeighboringCellInfo(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17788175/
最近我在尝试使用 Android 设备获取相邻小区的信息。而且我试过很多品牌的安卓手机,比如三星,htc。结果只是Htc可以得到邻区信息。我使用的函数是 TelephonyMananger.getNe
我正在使用下面的代码结束通话。但现在在 Oreo 上,我收到一个错误,指出需要 MODIFY_PHONE_STATE 权限,因此此代码不再有效。 TelephonyManager telephon
TelephonyManager 中定义了许多网络类型: NETWORK_TYPE_GPRS NETWORK_TYPE_EDGE NETWORK_TYPE_UMTS NETWORK_TYPE_CDMA
我在开发应用程序时需要电话号码。因此,我使用了 TelephonyManager,如下所示: TelephonyManager tmgr =(TelephonyManager)getApplicati
我似乎无法在 android 中声明 TelephonyManager,这就是我想要做的: TelephonyManager tele = Context.getSystemService(Conte
我正在生成一个用于混淆信息的 key 。 该 key 必须在设备之间更改,因此对于我使用的一代: Secure.getString(getContentResolver(), Secure.ANDRO
我对 TelephonyManager 有疑问。 DeviceId 为空/空白。这是我的代码。我哪里错了? 这是我的java代码 RegistryActivity.java package andro
我有一个类,一个电话状态的监听器。在此,当调用断开此线路时, case TelephonyManager.CALL_STATE_IDLE: Log.e(TAG, "CALL_STATE_IDLE");
我处于一种情况,我必须通过 GSMCellLocation 获取位置,即经度和纬度,因此我正在尝试以下方式: ... TelephonyManager tm = (TelephonyManag
我在振铃状态时得到一个电话号码,但有时在摘机状态时将其设置为空。我无法捕捉到它变成空的那一刻。 因此,当有电话打来(来电)时,它会进入振铃状态,并且号码会设置为 callno 变量。之后,当我接听电话
我希望我的应用在 networkType 更改时自动通知用户(例如从 EDGE 到 3G 或 3G 到 1XRTT 等)。使用 getNetworkType() 方法,我必须不断检查 networkT
如果数据连接不可用(因此 Geocoder 不起作用),我想找出用户当前所在的国家/地区。我想我可以通过使用 TelephonyManager.getNetworkCountryIso 在手机(不是平
我添加了这是我的 list 文件 - 那我的服务类是这样的—— public class Service
我刚刚接触 Android 开发,并决定我在这个新领域的第一个征服将是掌握手机对来电的 react 。 后来我用谷歌搜索了一下 http://www.compiletimeerror.com/2013
根据 Android 文档,它表示 getCellLocation API 调用将在未来弃用。有谁知道为什么它会被弃用?如果这是弃用,那么是否有其他替代方法来获取小区位置信息? Reference 最
我想知道如何从我的 android 应用程序中获取设备/用户区号我知道有一个名为 TelephonyManager 的库,但我找不到国家代码功能 为了让自己清楚:我有一个 Activity 要求用户输
我想获取安卓设备的电话号码。我使用此代码: TelephonyManager tm = (TelephonyManager)this.getApplicationContext().getSystem
以下更改发布 here ,getNetworkType 方法已从 Android R 及以后版本弃用。 在 R 编译的应用程序中尝试使用此方法时,会导致抛出以下异常: java.lang.Securi
我制作了一个音乐播放器应用程序,并在电话被调用时暂停歌曲,我使用此代码。 但这需要 READ_PHONE_STATE 权限,这可能会吓跑一些用户,所以我想知道是否可以通过另一种方式实现同样的事情而
我正在实现一个支付应用程序。因此,为了进行联系验证,我必须找到联系电话。我还从 sim 发送短信以在服务器上进行交叉验证。我试过了 > TelephonyManager tm = > (Telepho
我是一名优秀的程序员,十分优秀!