- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在 Android 中识别来电电话号码,但使用 TelephonyManager.EXTRA_INCOMING_NUMBER android studio 警告 EXTRA_INCOMING_NUMBER 已弃用。我通过了开发人员.android.com,它显示执行调用筛选的应用应使用 CallScreeningService API。但我不知道如何使用 CallScreeningService 来获取来电电话号码。谁能帮帮我?
最佳答案
正如@Saurabh 所说,筛选调用的新方法是通过CallScreeningService
。但是,要在 Android Q 及更高版本上运行该服务,用户需要将您的应用设置为默认来电显示和垃圾邮件应用(通过使用新的 RoleManager
类完成)
注册您的筛查服务:
<service android:name="com.example.ScreeningService"
android:permission="android.permission.BIND_SCREENING_SERVICE">
<intent-filter>
<action android:name="android.telecom.CallScreeningService"/>
</intent-filter>
</service>
创建你的服务类:
@RequiresApi(api = Build.VERSION_CODES.N)
class ScreeningService : CallScreeningService() {
override fun onScreenCall(details: Details) {
//code here
}
}
在您的主要 Activity (或您认为合适的任何地方)中向用户请求筛选角色:
@RequiresApi(Build.VERSION_CODES.Q)
private fun requestScreeningRole(){
val roleManager = getSystemService(Context.ROLE_SERVICE) as RoleManager
val isHeld = roleManager.isRoleHeld(RoleManager.ROLE_CALL_SCREENING)
if(!isHeld){
//ask the user to set your app as the default screening app
val intent = roleManager.createRequestRoleIntent(RoleManager.ROLE_CALL_SCREENING)
startActivityForResult(intent, 123)
} else {
//you are already the default screening app!
}
}
捕捉用户的 react :
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
123 -> {
if (resultCode == Activity.RESULT_OK) {
//The user set you as the default screening app!
} else {
//the user didn't set you as the default screening app...
}
}
else -> {}
}
}
对使用硬编码请求代码表示歉意>。<
关于java - Telephonymanager.EXTRA_INCOMING_NUMBER 在 API 级别 29 中已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62995702/
最近我在尝试使用 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
我是一名优秀的程序员,十分优秀!