<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Android復習(三)清單文件中的元素——> provider、receiver、service

      <provider>

      語法:
       
         <provider android:authorities="list"
                    android:directBootAware=["true" | "false"]
                    android:enabled=["true" | "false"]
                    android:exported=["true" | "false"]
                    android:grantUriPermissions=["true" | "false"]
                    android:icon="drawable resource"
                    android:initOrder="integer"
                    android:label="string resource"
                    android:multiprocess=["true" | "false"]
                    android:name="string"
                    android:permission="string"
                    android:process="string"
                    android:readPermission="string"
                    android:syncable=["true" | "false"]
                    android:writePermission="string" >
              . . .
          </provider>
      

        

       
      包含于:
      <application>
      可包含:
      <meta-data>
      <grant-uri-permission>
      <path-permission>
      說明:
      聲明內容提供程序組件。內容提供程序是 ContentProvider 的子類,可提供對由應用管理的數據的結構化訪問機制。應用中的所有內容提供程序都必須在清單文件的 <provider> 元素中定義;否則,系統將不知道它們,也不會運行它們。

      您只能聲明屬于您的應用的內容提供程序,而不應聲明在您的應用中使用的屬于其他應用的內容提供程序。

      Android 系統根據授權方字符串(提供程序的內容 URI 的一部分)來存儲對內容提供程序的引用。例如,假設您想要訪問用來存儲專業醫護人員相關信息的內容提供程序。為此,您可以調用 ContentResolver.query() 方法,它接受用來標識提供程序的 URI(以及其他參數):

          content://com.example.project.healthcareprovider/nurses/rn
      

        

      content: 架構將 URI 標識為指向 Android 內容提供程序的內容 URI。授權方 com.example.project.healthcareprovider 標識提供程序本身;Android 系統會在已知提供程序及其授權方的列表中查詢該授權方。子字符串 nurses/rn 是一個路徑,內容提供程序可使用它來標識提供程序數據的子集。

      請注意,在 <provider> 元素中定義提供程序時,請勿在 android:name 參數中添加架構或路徑,只能添加授權方。

      如需了解如何使用和開發內容提供程序,請參閱 API 指南 - 內容提供程序

      屬性:
      android:authorities
      一個或多個 URI 授權方的列表,這些 URI 授權方用于標識內容提供程序提供的數據。列出多個授權方時,用分號將其名稱分隔開來。為避免沖突,授權方名稱應遵循 Java 樣式的命名慣例(如 com.example.provider.cartoonprovider)。通常,它是實現提供程序的 ContentProvider 子類的名稱。

      沒有默認值。必須至少指定一個授權方。

      android:enabled
      系統是否可以實例化內容提供程序。如果可以,則設為“true”;如果不能,則設為“false”。默認值為“true”。

      <application> 元素具有自己的 enabled 屬性,該屬性適用于所有應用組件,包括內容提供程序。<application> 和 <provider> 屬性必須都為“true”(這正是它們兩者的默認設置),才會啟用內容提供程序。如果其中任一屬性為“false”,就會停用提供程序;無法將其實例化。

      android:directBootAware

      內容提供程序是否可感知直接啟動 (direct-boot);即,它是否可以在用戶解鎖設備之前運行。

      注意:在直接啟動期間,應用中的內容提供程序只能訪問設備保護存儲空間內的數據。

      默認值為 "false"

      android:exported
      內容提供程序是否可供其他應用使用:
      • true:提供程序可供其他應用使用。任何應用均可使用提供程序的內容 URI 來訪問它,但需依據為提供程序指定的權限進行訪問。
      • false:提供程序不可供其他應用使用。設置 android:exported="false" 可僅限您的應用訪問提供程序。只有與提供程序具有相同的用戶 ID (UID) 的應用或者通過 android:grantUriPermissions 元素被臨時授予對提供程序的訪問權限的應用才能訪問提供程序。

      由于此屬性是在 API 級別 17 中引入的,因此所有搭載 API 級別 16 及更低級別的設備的行為方式就像將此屬性設為 "true" 一樣。對于搭載 API 級別 17 及更高級別的設備,如果您將 android:targetSdkVersion 設為 17 或更高版本,則默認值為 "false"

      您可以設置 android:exported="false" 并且仍然限制對提供程序的訪問,方法是使用 permission 屬性來設置相應權限。

      android:grantUriPermissions
      是否可以向一般無權訪問內容提供程序的數據的組件授予訪問這些數據的權限,從而暫時克服由 readPermissionwritePermissionpermission 和 exported 屬性施加的限制。如果可以授予權限,則設為“true”;如果不能授予權限,則設為“false”。如果設為“true”,則可以授予對內容提供程序的任何數據的權限。如果設為“false”,則只能授予對 <grant-uri-permission> 子元素中列出的數據子集(如果有)的權限。默認值為“false”。

      通過授予權限,可讓應用組件對受權限保護的數據進行一次性訪問。例如,當電子郵件包含附件時,郵件應用可以要求適當的查看器來打開它,即使該查看器沒有查看內容提供程序的所有數據的常規權限也是如此。

      在這種情況下,通過用于激活組件的 Intent 對象中的 FLAG_GRANT_READ_URI_PERMISSION 和 FLAG_GRANT_WRITE_URI_PERMISSION 標志來授予權限。例如,郵件應用可能會將 FLAG_GRANT_READ_URI_PERMISSION 放入傳遞給 Context.startActivity() 的 Intent。權限特定于 Intent 中的 URI。

      如果您通過將此屬性設為“true”或通過定義 <grant-uri-permission> 子元素來啟用此功能,則必須在從提供程序中刪除覆蓋的 URI 后調用 Context.revokeUriPermission()

      另請參閱 <grant-uri-permission> 元素。

      android:icon
      一個表示內容提供程序的圖標。必須將此屬性設為對包含圖片定義的可繪制資源的引用。如果未設置此屬性,則改用為整個應用指定的圖標(請參閱 <application> 元素的 icon 屬性)。
      android:initOrder
      應按什么順序實例化內容提供程序,這是相對于由同一進程托管的其他內容提供程序的順序。當內容提供程序之間存在依賴關系時,為每個提供程序設置此屬性可確保按這些依賴關系要求的順序創建這些提供程序。值是一個簡單的整數,數值越高,初始化順序越靠前。
      android:label
      所提供內容的用戶可讀標簽。如果未設置此屬性,則改用為整個應用設置的標簽(請參閱 <application> 元素的 label 屬性)。

      應將標簽設為對字符串資源的引用,以便可以像界面中的其他字符串一樣進行本地化。不過,為了方便您開發應用,也可以將其設為原始字符串。

      android:multiprocess
      如果應用在多個進程中運行,則此屬性決定了是否會創建內容提供程序的多個實例。如果設為 true,則每個應用進程都有自己的內容提供程序對象。如果設為 false,則應用的進程僅共享一個內容提供程序對象。默認值為 false

      將此標志設為 true 可以通過減少進程間通信的開銷來提高性能,但也會增加每個進程的內存占用量。

      android:name
      實現內容提供程序的類的名稱,它是 ContentProvider 的子類。這應該是一個完全限定類名(如“com.example.project.TransportationProvider”)。不過,作為一種簡寫形式,如果名稱的第一個字符是句點,則會將其附加到 <manifest> 元素中指定的軟件包名稱。

      沒有默認值。必須指定相應名稱。

      android:permission
      客戶端為了讀取或寫入內容提供程序的數據而必須具備的權限的名稱。使用此屬性可以方便地設置適用于讀取和寫入的單一權限。不過,readPermissionwritePermission 和 grantUriPermissions 屬性優先于此屬性。如果也設置了 readPermission 屬性,則該屬性控制對查詢內容提供程序的訪問權限。如果設置了 writePermission 屬性,則該屬性控制對修改提供程序的數據的訪問權限。

      如需詳細了解權限,請參閱簡介中的權限部分以及一篇單獨的文檔 - 安全與權限

      android:process
      一個進程的名稱,內容提供程序應在該進程中運行。通常,應用的所有組件都在為應用創建的默認進程中運行。它與應用軟件包的名稱相同。<application> 元素的 process 屬性可以為所有組件設置不同的默認值。但是,每個組件都可以使用自己的 process 屬性來替換默認值,從而允許您讓應用跨越多個進程。

      如果為此屬性分配的名稱以冒號(“:”)開頭,則會在需要時創建一個應用專用的新進程,并且 Activity 將在該進程中運行。如果進程名稱以小寫字符開頭,則 Activity 將在采用該名稱的全局進程中運行,前提是它具有相應權限。這樣,不同應用中的組件就可以共享進程,從而減少資源使用量。

      android:readPermission

      客戶端要查詢內容提供程序而必須具備的權限。

      如果提供程序將 android:grantUriPermissions 設為 true,或者如果給定的客戶端滿足 <grant-uri-permission> 子元素的條件,則客戶端可以獲得對內容提供程序的數據的臨時讀取訪問權限。

      另請參閱 permission 和 writePermission 屬性。

      android:syncable
      由內容提供程序控制的數據是否要與服務器上的數據同步。如果要同步,則設為“true”;如果不同步,則設為“false”。
      android:writePermission

      客戶端要對由內容提供程序控制的數據進行更改而必須具備的權限。

      如果提供程序將 android:grantUriPermissions 設為 true,或者如果給定的客戶端滿足 <grant-uri-permission> 子元素的條件,則客戶端可以獲得對修改內容提供程序的數據的臨時寫入訪問權限。

      另請參閱 permission 和 readPermission 屬性。

      <receiver>

      語法:
      <receiver android:directBootAware=["true" | "false"]
                    android:enabled=["true" | "false"]
                    android:exported=["true" | "false"]
                    android:icon="drawable resource"
                    android:label="string resource"
                    android:name="string"
                    android:permission="string"
                    android:process="string" >
              . . .
          </receiver>
      

        

       
      包含于:
      <application>
      可包含:
      <intent-filter>
      <meta-data>
      說明:
      將廣播接收器(BroadcastReceiver 子類)聲明為應用的組件之一。廣播接收器允許應用接收由系統或其他應用廣播的 Intent,即使應用的其他組件并沒有運行也是如此。

      讓系統知道廣播接收器有兩種方法:一種方法是使用此元素在清單文件中聲明廣播接收器。另一種方法是在代碼中動態創建接收器,并使用 Context.registerReceiver() 方法注冊接收器。如需詳細了解如何動態創建接收器,請參閱 BroadcastReceiver 類說明。

      警告:限制您在應用中設置的廣播接收器的數量。廣播接收器過多會影響應用的性能及用戶設備的電池續航時間。如需詳細了解您可以用于安排后臺工作的 API(而不是 BroadcastReceiver 類),請參閱后臺優化

      屬性:
      android:directBootAware

      廣播接收器是否可感知直接啟動;即,它是否可以在用戶解鎖設備之前運行。

      注意:在直接啟動期間,應用中的廣播接收器只能訪問存儲在設備保護存儲區中的數據。

      默認值為 "false"

      android:enabled
      系統是否可以實例化廣播接收器;如果可以,則為“true”,如果不可以,則為“false”。默認值為“true”。

      <application> 元素有自己的 enabled 屬性,該屬性會應用于所有應用組件(包括廣播接收器)。要啟用廣播接收器,<application> 和 <receiver> 屬性都必須為“true”。如果其中一個屬性為“false”,則表示廣播接收器已停用;無法對其進行實例化。

      android:exported
      廣播接收器是否可以接收來自其應用外部來源的消息 - 如果可以,則為“true”,如果不可以,則為“false”。如果為“false”,則廣播接收器只能接收由同一應用或具有相同用戶 ID 的應用的組件發送的消息。

      默認值取決于廣播接收器是否包含 Intent 過濾器。沒有任何過濾器意味著只能由指定其確切類名稱的 Intent 對象調用。這意味著接收器僅供應用內部使用(因為其他應用通常不知道類名稱)。因此,在這種情況下,默認值為“false”。另一方面,至少存在一個過濾器意味著廣播接收器用于接收由系統或其他應用廣播的 Intent,所以默認值為“true”。

      此屬性不是限制廣播接收器對外公開的唯一方式。您還可以使用權限來限制可向其發送消息的外部實體(請參閱 permission 屬性)。

      android:icon
      表示廣播接收器的圖標。此屬性必須設置為對包含圖片定義的可繪制資源的引用。如果未設置,則改用為整個應用指定的圖標(請參閱 <application> 元素的 icon 屬性)。

      廣播接收器的圖標(無論是在此處設置還是由 <application> 元素設置)也是接收器的所有 Intent 過濾器的默認圖標(請參閱 <intent-filter> 元素的 icon 屬性)。

      android:label
      廣播接收器的用戶可讀標簽。如果未設置此屬性,則改用整個應用的標簽集(請參閱 <application> 元素的 label 屬性)。

      廣播接收器的標簽(無論是在此處設置還是由 <application> 元素設置)也是接收器的所有 Intent 過濾器的默認標簽(請參閱 <intent-filter> 元素的 label 屬性)。

      此標簽應設置為對字符串資源的引用,以便可以像界面中的其他字符串一樣進行本地化。不過,為了方便您開發應用,還可以將此標簽設置為原始字符串。

      android:name
      實現廣播接收器的類(BroadcastReceiver 的子類)的名稱。此名稱應該是一個完全限定類名稱(如“com.example.project.ReportReceiver”)。不過,作為一種簡寫形式,如果名稱的第一個字符是句點,(如“. ReportReceiver”),則會將其附加到 <manifest> 元素中指定的軟件包名稱。

      發布應用后,不能更改此名稱(除非您已設置 android:exported="false")。

      沒有默認值。必須指定此名稱。

      android:permission
      廣播方要向廣播接收器發送消息而必須具備的權限的名稱。如果未設置此屬性,則由 <application> 元素的 permission 屬性設置的權限會應用于廣播接收器。如果這兩個屬性均未設置,則接收器不受權限保護。

      如需詳細了解這些權限,請參閱簡介中的權限部分以及一篇單獨的文檔:安全與權限

      android:process
      廣播接收器應在其中運行的進程的名稱。通常,應用的所有組件都會在為應用創建的默認進程中運行。它的名稱與應用軟件包的名稱相同。<application> 元素的 process 屬性可以為所有組件設置不同的默認值。不過,每個組件都可以使用其自己的 process 屬性替換默認屬性,從而允許您跨多個進程分布應用。

      如果分配給此屬性的名稱以冒號(“:”)開頭,則系統會在需要時創建一個只有該應用可見的新進程,然后廣播接收器會在該進程中運行。 如果進程名稱以小寫字符開頭,則接收器會在使用該名稱的全局進程中運行,前提是它有權執行此操作。這樣,不同應用中的組件可以共用一個進程,從而減少資源使用量。

      <service>

      語法:
      <service android:description="string resource"
               android:directBootAware=["true" | "false"]
               android:enabled=["true" | "false"]
               android:exported=["true" | "false"]
               android:foregroundServiceType=["connectedDevice" | "dataSync" |
                                              "location" | "mediaPlayback" | "mediaProjection" |
                                              "phoneCall"]
               android:icon="drawable resource"
               android:isolatedProcess=["true" | "false"]
               android:label="string resource"
               android:name="string"
               android:permission="string"
               android:process="string" >
          . . .
      </service>
       
      包含它的文件:
      <application>
      可包含:
      <intent-filter>
      <meta-data>
      說明:
      將服務(Service 子類)聲明為應用的一個組件。與 Activity 不同,服務缺少可視化界面。服務用于實現長時間運行的后臺操作,或可由其他應用調用的富通信 API。

      必須用清單文件中的 <service> 元素表示所有服務。系統不會識別和運行任何未進行聲明的服務。

      屬性:
      android:description
      向用戶描述服務的字符串。您應將此標簽設置為對字符串資源的引用,以便可以像對界面中的其他字符串那樣對其進行本地化。
      android:directBootAware

      服務是否支持直接啟動,即其是否可以在用戶解鎖設備之前運行。

      注意:直接啟動期間,應用中的服務僅可訪問存儲在設備保護存儲區的數據。

      默認值為 "false"

      android:enabled
      系統是否可實例化服務 —“true”表示可以,“false”表示不可以。默認值為“true”。

      <application> 元素擁有自己的 enabled 屬性,該屬性適用于所有應用組件,包括服務。只有在 <application> 和 <service> 屬性都為“true”(因為它們都默認使用該值)時,系統才能啟用服務。任何一項為“false”都會造成服務停用,從而使系統無法將其實例化。

      android:exported
      其他應用的組件是否能調用服務或與之交互 —“true”表示可以,“false”表示不可以。當該值為“false”時,只有同一個應用或具有相同用戶 ID 的應用的組件可以啟動服務或綁定到服務。

      默認值取決于服務是否包含 Intent 過濾器。沒有任何過濾器意味著服務只能通過指定其確切的類名稱進行調用。這意味著服務專供應用內部使用(因為其他應用不知曉其類名稱)。因此,在這種情況下,默認值為“false”。另一方面,至少存在一個過濾器意味著服務專供外部使用,因此默認值為“true”。

      此屬性并非是唯一限制向其他應用披露服務的方式。您還可使用權限來限制哪些外部實體可以與服務交互(請參閱 permission 屬性)。

      android:foregroundServiceType

      闡明服務是滿足特定用例要求的前臺服務。例如,"location" 類型的前臺服務表示應用正在獲取設備的當前位置,目的通常是繼續用戶發起的操作,且該操作與設備位置相關。

      您可以將多個前臺服務類型分配給特定服務。

      android:icon
      表示服務的圖標。必須將該屬性設置為對包含圖像定義的可繪制資源的引用。如果未設置該屬性,則轉而使用為應用整體指定的圖標(請參閱 <application> 元素的 icon 屬性)。

       

      服務的圖標(無論是在此處設置,還是由 <application> 元素設置)同時也是服務所有 Intent 過濾器的默認圖標(請參閱 <intent-filter> 元素的 icon 屬性)。

      android:isolatedProcess
      如果設置為 true,則此服務將在與系統其余部分隔離的特殊進程下運行。此服務自身沒有權限,只能通過 Service API 與其進行通信(綁定和啟動)。
      android:label
      可向用戶顯示的服務名稱。如果未設置該屬性,則轉而使用為應用整體設置的標簽(請參閱 <application> 元素的 label 屬性)。

      服務的標簽(無論是在此處設置,還是由 <application> 元素設置)同時也是服務所有 Intent 過濾器的默認標簽(請參閱 <intent-filter> 元素的 label 屬性)。

      您應將此標簽設置為對字符串資源的引用,以便可以像對界面中的其他字符串那樣對其進行本地化。不過,為便于開發應用,您也可將其設置為原始字符串。

      android:name
      實現服務的 Service 子類的名稱。此名稱應為完全限定類名稱(例如“com.example.project.RoomService”)。不過,為簡便起見,如果名稱的第一個字符是句點(例如,“.RoomService”),則名稱將追加至 <manifest> 元素中指定的軟件包名稱。

      一旦發布應用,即不應更改該名稱(除非您設置了 android:exported="false")。

      沒有默認值。必須指定該名稱。

      android:permission
      實體啟動服務或綁定到服務所必需的權限的名稱。如果 startService()bindService() 或 stopService() 的調用者尚未獲得此權限,該方法將不起作用,且系統不會將 Intent 對象傳送給服務。

      如果未設置該屬性,則對服務應用由 <application> 元素的 permission 屬性所設置的權限。如果二者均未設置,則服務不受權限保護。

      如需了解有關權限的詳細信息,請參閱簡介的權限部分,以及單獨的安全與權限文檔。

      android:process
      將運行服務的進程的名稱。正常情況下,應用的所有組件都會在為應用創建的默認進程中運行。該名稱與應用軟件包的名稱相同。<application> 元素的 process 屬性可為所有組件設置不同的默認進程名稱。不過,組件可以使用自己的 process 屬性替換默認值,讓您可以將應用散布到多個進程中。

      如果為此屬性分配的名稱以冒號(“:”)開頭,則系統會在需要時創建應用專用的新進程,并且服務會在該進程中運行。如果進程名稱以小寫字符開頭,則服務將在使用該名稱的全局進程中運行,前提是它擁有相應的權限。如此一來,不同應用中的組件便可共享進程,從而減少資源使用。

      posted @ 2020-04-03 15:00  王世楨  閱讀(1177)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩一区二区三区女优丝袜| 99在线精品国自产拍中文字幕| 国产午夜精品福利91| 综合无码一区二区三区| av无码一区二区大桥久未| 亚洲av第一区二区三区| 国产绿帽在线视频看| 福利视频在线一区二区| 日韩午夜午码高清福利片| 日本中文字幕在线播放| 欧美人与动牲交A免费观看| 亚洲一区二区三区色视频| 性动态图无遮挡试看30秒| 开心激情站开心激情网六月婷婷| 国产精品三级国产精品高| 中文字幕天天躁日日躁狠狠躁免费| 人妻日韩人妻中文字幕| 日本免费一区二区三区日本| 久久精品国产一区二区蜜芽| 亚洲精品色哟哟一区二区| 少妇被黑人到高潮喷出白浆| 午夜精品福利亚洲国产| 欧美亚洲色综久久精品国产| 亚洲精品中文av在线| 久久精品熟女亚洲av艳妇| 欧美老熟妇乱子伦牲交视频| 国产午夜精品福利91| 久久中文字幕av第二页| 色av永久无码影院av| 韩国午夜理伦三级| 亚洲日韩精品无码一区二区三区| 未满十八18禁止免费无码网站| 国内揄拍国内精品对久久| 国产午夜福利精品视频| 国产中文字幕在线精品| 国产伦精品一区二区亚洲| 99热这里只有精品免费播放 | 女人香蕉久久毛毛片精品| 最新日韩精品视频在线| 国产无码高清视频不卡| 九九热精品在线免费视频|