ContactsContract.Directory 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
目錄代表連絡人主體,例如
[Android.Runtime.Register("android/provider/ContactsContract$Directory", DoNotGenerateAcw=true)]
public sealed class ContactsContract.Directory : Java.Lang.Object
[<Android.Runtime.Register("android/provider/ContactsContract$Directory", DoNotGenerateAcw=true)>]
type ContactsContract.Directory = class
inherit Object
- 繼承
- 屬性
備註
目錄代表連絡人主體,例如本機連絡人、Google Apps 全域通訊清單或公司全域通訊清單。
目錄會實作為內容提供者,其中包含其唯一授權單位,以及與主要連絡人提供者相同的 API。 不過,不預期每個目錄提供者會完全實作此合約。 如果目錄提供者沒有特定要求的實作,它應該擲回 UnsupportedOperationException。
目錄最重要的使用案例是搜尋。 目錄提供者應該至少 ContactsContract.Contacts#CONTENT_FILTER_URI Contacts.CONTENT_FILTER_URI
支援 。 如果目錄提供者想要參與電子郵件和電話查閱功能,它也應該實 CommonDataKinds.Email#CONTENT_FILTER_URI CommonDataKinds.Email.CONTENT_FILTER_URI
作 和 CommonDataKinds.Phone#CONTENT_FILTER_URI CommonDataKinds.Phone.CONTENT_FILTER_URI
。
目錄提供者應該針對它無法辨識的每個投影欄位傳回 Null,而不是擲回例外狀況。 如此一來,如果 ContactsContract 在未來以新欄位擴充,就不會中斷。
用戶端會透過連絡人提供者與目錄互動,方法是提供選擇性 directory=
查詢參數。
當連絡人提供者收到要求時,它會轉換 URI,並將要求轉送至對應的目錄內容提供者。 URI 會以下列方式轉換: < ul <> li > URI 授權單位會取代為對應的 #DIRECTORY_AUTHORITY
。 </li li ><> 使用 accountName=
對應的 #ACCOUNT_TYPE
和 值來新增或取代 和 accountType=
參數。 <#ACCOUNT_NAME
/li >< /ul>
用戶端應該將目錄要求傳送給連絡人提供者,並讓它轉送給個別提供者,而不是自行建構目錄提供者 URI。 這種間接存取層級可讓連絡人提供者實作額外的系統層級功能和優化。 存取連絡人提供者受到READ_CONTACTS許可權的保護,但目錄提供者的存取權受到BIND_DIRECTORY_SEARCH保護。 此許可權是在 API 層級 17 引進,針對先前的平臺版本,提供者應該執行下列檢查,以確定呼叫來自 ContactsProvider:
private boolean isCallerAllowed() {
PackageManager pm = getContext().getPackageManager();
for (String packageName: pm.getPackagesForUid(Binder.getCallingUid())) {
if (packageName.equals("com.android.providers.contacts")) {
return true;
}
}
return false;
}
</p>
Directory 資料表是唯讀的,而且會自動由連絡人提供者維護。
它一律至少有這兩個數據列: < ul >< li > 本機目錄。 Directory#_ID Directory._ID
= Directory#DEFAULT Directory.DEFAULT
它有 。 此目錄可用來存取本機儲存的連絡人。 您可以藉由完全省 directory=
略 參數來達成相同。 </li li ><> 本機不可見連絡人。 對應的目錄識別碼為 Directory#LOCAL_INVISIBLE Directory.LOCAL_INVISIBLE
。 </li >< /ul>
依照此程式,連絡人提供者會探索自訂目錄: < ul >< li > 它會尋找所有已安裝的內容提供者,其中繼資料會識別為 AndroidManifest.xml 中的目錄提供者: <meta-data android:name="android.content.ContactDirectory" android:value="true" />
此標籤應該放在對應的內容提供者宣告內。
</li li ><> Then Contacts Provider 會將查詢傳送 Directory#CONTENT_URI Directory.CONTENT_URI
給每個目錄授權單位。 目錄提供者必須實作此查詢,並傳回目錄清單。 提供者傳回的每個目錄都必須有唯一的 和 #ACCOUNT_TYPE
資料行組合 #ACCOUNT_NAME
, (null 允許) 。 由於會自動指派目錄識別碼,因此_ID欄位不會是查詢投影的一部分。 </li li ><> Contacts Provider 會將從所有目錄提供者收到的目錄清單編譯成一個,將每個個別目錄指派一個全域唯一識別碼,並將所有目錄記錄儲存在 Directory 資料表中。 </li >< /ul >< /p>
連絡人提供者會自動詢問新安裝的或取代的套件。 因此,只要安裝包含目錄提供者的套件就足以讓該提供者註冊。 提供目錄提供者的套件不需要包含可啟動的活動。
Directory 資料表中的每個資料列都會自動與對應的套件相關聯, (apk) 。 如果稍後卸載套件,所有對應的目錄資料列都會從連絡人提供者自動移除。
當使用者新增新的目錄帳戶) 時,目錄提供者所處理的目錄清單 (變更時,目錄提供者應該呼叫 #notifyDirectoryChange
來通知連絡人提供者變更。 回應中,連絡人提供者會重新查詢目錄提供者,以取得新的目錄清單。
目錄資料列可以選擇性地與現有的帳戶相關聯, (請參閱 android.accounts.AccountManager
) 。 如果稍後移除帳戶,對應目錄資料列會自動從連絡人提供者中移除。
的 android.provider.ContactsContract.Directory
JAVA 檔。
此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據中所述的詞彙使用。
欄位
AccountName |
與此目錄相關聯的帳戶。 |
AccountType |
與此目錄相關聯的帳戶類型。 |
CallerPackageParamKey |
傳遞至目錄提供者的查詢參數,指出已發出查詢要求的用戶端套件名稱。 |
ContentItemType |
專案的 MIME 類型 |
ContentType |
MIME 類型, |
Default |
預設目錄_ID,代表本機儲存的連絡人。 |
DirectoryAuthority |
目錄提供者的授權單位。 |
DisplayName |
可在 UI 中使用的選擇性名稱來表示此目錄,例如。 |
EnterpriseDefault |
_ID Managed 設定檔預設目錄,代表本機儲存的連絡人。 |
EnterpriseLocalInvisible |
_ID Managed 設定檔目錄,代表本機儲存的不可見連絡人。 |
ExportSupport |
其中 |
ExportSupportAnyAccount |
已淘汰.
指出 |
ExportSupportNone |
已淘汰.
指出 |
ExportSupportSameAccountOnly |
已淘汰.
|
LocalInvisible |
_ID目錄,代表本機儲存的不可見連絡人。 |
PackageName |
擁有此目錄的封裝名稱。 |
PhotoSupport |
其中 |
PhotoSupportFull |
已淘汰.
指出 |
PhotoSupportFullSizeOnly |
已淘汰.
表示 |
PhotoSupportNone |
已淘汰.
指出 |
PhotoSupportThumbnailOnly |
已淘汰.
指出 |
ShortcutSupport |
其中 |
ShortcutSupportDataItemsOnly |
已淘汰.
設定 |
ShortcutSupportFull |
已淘汰.
指出 |
ShortcutSupportNone |
已淘汰.
|
TypeResourceId |
在封裝 |
屬性
Class |
傳回這個 |
ContentUri |
此資料表的 content:// 樣式 URI。 |
EnterpriseContentUri |
用來從呼叫使用者和連結至該目錄的 Managed 設定檔取得所有目錄的 URI。 |
Handle |
基礎 Android 實例的控制碼。 (繼承來源 Object) |
JniIdentityHashCode |
目錄代表連絡人主體,例如 (繼承來源 Object) |
JniPeerMembers |
目錄代表連絡人主體,例如 |
PeerReference |
目錄代表連絡人主體,例如 (繼承來源 Object) |
ThresholdClass |
此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式碼使用。 (繼承來源 Object) |
ThresholdType |
此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式碼使用。 (繼承來源 Object) |
方法
Clone() |
建立並傳回這個 物件的複本。 (繼承來源 Object) |
Dispose() |
目錄代表連絡人主體,例如 (繼承來源 Object) |
Dispose(Boolean) |
目錄代表連絡人主體,例如 (繼承來源 Object) |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
IsEnterpriseDirectoryId(Int64) |
如果目錄識別碼來自企業設定檔上的連絡人提供者,則傳回 TRUE。 |
IsRemoteDirectoryId(Int64) |
如果它是遠端預存目錄,則傳回 TRUE。 |
JavaFinalize() |
當垃圾收集判斷物件沒有其他參考時,由物件上的垃圾收集行程呼叫。 (繼承來源 Object) |
Notify() |
喚醒正在等候此物件的監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
NotifyDirectoryChange(ContentResolver) |
通知系統特定目錄提供者所處理之目錄清單中的變更。 |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
ToArray<T>() |
目錄代表連絡人主體,例如 (繼承來源 Object) |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnregisterFromRuntime() |
目錄代表連絡人主體,例如 (繼承來源 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() |
目錄代表連絡人主體,例如 (繼承來源 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
目錄代表連絡人主體,例如 (繼承來源 Object) |
IJavaPeerable.Finalized() |
目錄代表連絡人主體,例如 (繼承來源 Object) |
IJavaPeerable.JniManagedPeerState |
目錄代表連絡人主體,例如 (繼承來源 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
目錄代表連絡人主體,例如 (繼承來源 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
目錄代表連絡人主體,例如 (繼承來源 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
目錄代表連絡人主體,例如 (繼承來源 Object) |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
目錄代表連絡人主體,例如 |
GetJniTypeName(IJavaPeerable) |
目錄代表連絡人主體,例如 |