BlockedNumberContract 类

定义

blockednumber 提供程序和应用程序之间的协定。

[Android.Runtime.Register("android/provider/BlockedNumberContract", ApiSince=24, DoNotGenerateAcw=true)]
public class BlockedNumberContract : Java.Lang.Object
[<Android.Runtime.Register("android/provider/BlockedNumberContract", ApiSince=24, DoNotGenerateAcw=true)>]
type BlockedNumberContract = class
    inherit Object
继承
BlockedNumberContract
属性

注解

blockednumber 提供程序和应用程序之间的协定。 包含支持的 URI 和列的定义。

<h3> 概述 </h3>

内容提供程序公开包含阻止数字的表。 用于访问此表的列和 URI 由 BlockedNumbers 类定义。 平台会丢弃来自阻止号码的消息和调用。 可以使用 接收有关提供程序更改的 android.database.ContentObserver通知。

平台不会阻止消息和紧急号码的呼叫,如 定义 android.telephony.PhoneNumberUtils#isEmergencyNumber(String)。 如果用户联系紧急服务,则平台在 定义的 android.telephony.CarrierConfigManager#KEY_DURATION_BLOCKING_DISABLED_AFTER_EMERGENCY_INT持续时间内禁用号码阻止。

<h3> 权限 </h3>

只有系统、默认短信应用程序和默认手机应用 (See android.telecom.TelecomManager#getDefaultDialerPackage()) ,并且运营商应用 (See android.service.carrier.CarrierService) 可以读取和写入块数提供程序。 但是, #canCurrentUserBlockNumbers(Context) 任何应用程序都可以访问 。

<h3> 数据 </h3>

除常规电话号码外,阻止号码提供商还可以存储地址 (,例如电子邮件) ,用户可以从中接收消息和呼叫。 阻止的数字存储在 列中 BlockedNumbers#COLUMN_ORIGINAL_NUMBER 。 如果可以规范化,则电话号码的规范化版本 () 存储在 BlockedNumbers#COLUMN_E164_NUMBER 列中。 如果地址存在于 BlockedNumbers#COLUMN_ORIGINAL_NUMBER 列中,或者如果地址的 E164 版本与列匹配,则平台会阻止调用和来自该地址的消息 BlockedNumbers#COLUMN_E164_NUMBER

<h3> Operations </h3><dl><dt><b>Insert</b></dt><dd>

BlockedNumbers#COLUMN_ORIGINAL_NUMBER 是需要填充的必需列。 应用可以选择提供 BlockedNumbers#COLUMN_E164_NUMBER 电话号码的 E164 表示形式。 如果应用未提供此列,提供程序会自动填充此列。 请注意,如果规范化失败或地址不是电话号码 (例如电子邮件) ,则不会填充此列。

尝试在同一列) 插入现有阻止号码 (BlockedNumbers#COLUMN_ORIGINAL_NUMBER 将导致替换现有的阻止编号。

示例:

ContentValues values = new ContentValues();
            values.put(BlockedNumbers.COLUMN_ORIGINAL_NUMBER, "1234567890");
            Uri uri = getContentResolver().insert(BlockedNumbers.CONTENT_URI, values);
ContentValues values = new ContentValues();
            values.put(BlockedNumbers.COLUMN_ORIGINAL_NUMBER, "1234567890");
            values.put(BlockedNumbers.COLUMN_E164_NUMBER, "+11234567890");
            Uri uri = getContentResolver().insert(BlockedNumbers.CONTENT_URI, values);
ContentValues values = new ContentValues();
            values.put(BlockedNumbers.COLUMN_ORIGINAL_NUMBER, "12345@abdcde.com");
            Uri uri = getContentResolver().insert(BlockedNumbers.CONTENT_URI, values);

</p></dd<>dt><b>Update</b></dt><dd>

不支持汇报。 请改用“删除”和“插入”。

</dd dt b Delete/b></dt><dd<>><><>

可以按如下所示执行删除:

ContentValues values = new ContentValues();
            values.put(BlockedNumbers.COLUMN_ORIGINAL_NUMBER, "1234567890");
            Uri uri = getContentResolver().insert(BlockedNumbers.CONTENT_URI, values);
            getContentResolver().delete(uri, null, null);

若要检查特定数字是否被阻止,请使用 方法 #isBlocked(Context, String)。 </p></dd<>dt><b>Query</b></dt><dd>

可以按如下所示枚举所有被阻止的数字:

Cursor c = getContentResolver().query(BlockedNumbers.CONTENT_URI,
                     new String[]{BlockedNumbers.COLUMN_ID, BlockedNumbers.COLUMN_ORIGINAL_NUMBER,
                     BlockedNumbers.COLUMN_E164_NUMBER}, null, null, null);

</p></dd><dt><b>Unblock</b></dt><dd>

使用 方法 #unblock(Context, String) 取消阻止数字。

</Dd>

<h3> 多用户 </h3>

应用必须先使用 方法 #canCurrentUserBlockNumbers(Context) ,然后才能对阻止的数字提供程序执行任何操作。 如果 #canCurrentUserBlockNumbers(Context) 返回 false,则提供程序上的所有操作都将失败,并显示 SecurityException。 平台将阻止来自提供程序中号码的呼叫和消息,而不与当前用户无关。

android.provider.BlockedNumberContractJava 文档。

此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。

构造函数

BlockedNumberContract(IntPtr, JniHandleOwnership)

blockednumber 提供程序和应用程序之间的协定。

字段

Authority

阻止号码提供程序的颁发机构

属性

AuthorityUri

阻止号码提供程序的颁发机构 content:// 样式 URI

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

blockednumber 提供程序和应用程序之间的协定。

(继承自 Object)
JniPeerMembers

blockednumber 提供程序和应用程序之间的协定。

PeerReference

blockednumber 提供程序和应用程序之间的协定。

(继承自 Object)
ThresholdClass

blockednumber 提供程序和应用程序之间的协定。

ThresholdType

blockednumber 提供程序和应用程序之间的协定。

方法

CanCurrentUserBlockNumbers(Context)

检查当前用户是否支持阻止号码。

Clone()

创建并返回此对象的副本。

(继承自 Object)
Dispose()

blockednumber 提供程序和应用程序之间的协定。

(继承自 Object)
Dispose(Boolean)

blockednumber 提供程序和应用程序之间的协定。

(继承自 Object)
Equals(Object)

指示其他某个对象是否“等于”此对象。

(继承自 Object)
GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
IsBlocked(Context, String)

返回给定数字是否在阻止列表中。

JavaFinalize()

当垃圾回收确定不再引用对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
ToArray<T>()

blockednumber 提供程序和应用程序之间的协定。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
Unblock(Context, String)

如果被阻止, phoneNumber 则取消阻止 。

UnregisterFromRuntime()

blockednumber 提供程序和应用程序之间的协定。

(继承自 Object)
Wait()

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<>

(继承自 Object)
Wait(Int64)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)
Wait(Int64, Int32)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)

显式接口实现

IJavaPeerable.Disposed()

blockednumber 提供程序和应用程序之间的协定。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

blockednumber 提供程序和应用程序之间的协定。

(继承自 Object)
IJavaPeerable.Finalized()

blockednumber 提供程序和应用程序之间的协定。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

blockednumber 提供程序和应用程序之间的协定。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

blockednumber 提供程序和应用程序之间的协定。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

blockednumber 提供程序和应用程序之间的协定。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

blockednumber 提供程序和应用程序之间的协定。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

blockednumber 提供程序和应用程序之间的协定。

GetJniTypeName(IJavaPeerable)

blockednumber 提供程序和应用程序之间的协定。

适用于