Share via


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>

只有系統、預設 SMS 應用程式和預設電話應用程式 (請參閱 android.telecom.TelecomManager#getDefaultDialerPackage()) ,以及 (請參閱 android.service.carrier.CarrierService) 可讀取和寫入 blockednumber 提供者的電信業者應用程式。 不過, #canCurrentUserBlockNumbers(Context) 任何應用程式都可以存取。

<h3 > 資料 < /h3>

除了一般電話號碼以外,封鎖的號碼提供者也可以儲存位址 (,例如使用者可接收訊息的電子郵件) ,以及通話。 封鎖的數位會儲存在資料行中 BlockedNumbers#COLUMN_ORIGINAL_NUMBER 。 正規化版本的電話號碼 (如果可能正規化,) 儲存在資料行中 BlockedNumbers#COLUMN_E164_NUMBER 。 如果位址存在於資料行中,或如果位址的 BlockedNumbers#COLUMN_ORIGINAL_NUMBER E164 版本符合 BlockedNumbers#COLUMN_E164_NUMBER 資料行,則平臺會封鎖來自位址的呼叫和訊息。

<h3 > 作業 < /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>

不支援匯報。 請改用 Delete 和 Insert。

</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 檔。

此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。

建構函式

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 < notified/em > 或 < em > interrupted < /em > 。 ><

(繼承來源 Object)
Wait(Int64)

讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <>

(繼承來源 Object)
Wait(Int64, Int32)

讓目前的執行緒等到喚醒為止,通常是 em < notified/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 提供者與應用程式之間的合約。

適用於