BlockedNumberContract 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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
- 继承
- 属性
注解
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.BlockedNumberContract
Java 文档。
此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。
构造函数
BlockedNumberContract(IntPtr, JniHandleOwnership) |
blockednumber 提供程序和应用程序之间的协定。 |
字段
Authority |
阻止号码提供程序的颁发机构 |
属性
AuthorityUri |
阻止号码提供程序的颁发机构 content:// 样式 URI |
Class |
返回此 |
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) |
如果被阻止, |
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 提供程序和应用程序之间的协定。 |