Android 10 获取 IMS 注册状态

时间:2021-05-05 09:49:12

标签: android android-10.0

我正在尝试通过 Android 应用访问 IMS 注册状态。目前,对于 Android < 10,我使用反射来访问状态:

            TelephonyManager tm = (TelephonyManager) app.getSystemService(app.getBaseContext().TELEPHONY_SERVICE);
            Class c = Class.forName(tm.getClass().getName());
            Method m = c.getDeclaredMethod("isImsRegistered");
            m.setAccessible(true);
            boolean imsRegisterd = m.invoke(tm);

显然,这不适用于 Android 10:https://developer.android.com/about/versions/10/non-sdk-q#new-sdk

Landroid/telephony/TelephonyManager;->isImsRegistered()Z   # SystemAPI ImsMmTelManager#registerImsRegistrationCallback to listen IMS registration state change

不幸的是,我不知道如何使用它。我搜索了各种网页,但没有找到任何示例来获取 ImsMmTelManager 的实例或注册回调。有些线程说用@SystemApi 注释的类无论如何都无法访问,所以我想知道我是否可以用这些回调来做到这一点。基本上,我只想知道设备是否通过 IMS 注册。我也可以通过亚行请求状态,如果这样更容易的话。

感谢您的建议。

0 个答案:

没有答案
相关问题