簡體   English   中英

在 android 10 上以編程方式獲取來電號碼

[英]Get incoming call number programmatically on android 10

從 api 29(Android 10) 開始,查看此問題的先前解決方案現在已貶值 有沒有人能夠獲得 api 29 的來電號碼。顯然,現在要做到這一點,您需要使用CallScreeningService

是的,實施 class 並在清單中添加以下必要的權限:

  <service
        android:name=".CallScreeningService"
        android:permission="android.permission.BIND_SCREENING_SERVICE">
        <intent-filter>
            <action android:name="android.telecom.CallScreeningService" />
        </intent-filter>
    </service>

onScreenCall(Call.Details details)中,您可以調用details.getHandle()返回來電的電話號碼。 只有當號碼無法與設備上現有的聯系信息匹配時,才會調用此方法。

@Override
public void onScreenCall(Call.Details details) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
        if(details.getCallDirection() == Call.Details.DIRECTION_INCOMING) {
            CallResponse.Builder response = new CallResponse.Builder();
            response.setDisallowCall(false);
            response.setRejectCall(false);
            response.setSilenceCall(false);
            response.setSkipCallLog(false);
            response.setSkipNotification(false);
            details.getHandle(); //This is the calling number
            respondToCall(details, response.build());

        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM