1. 程式人生 > >manifest.json 解析--手機web app開發筆記(三-2)

manifest.json 解析--手機web app開發筆記(三-2)

四、SDK配置和模組許可權配置

SDK 就是 Software Development Kit 的縮寫,中文意思就是“軟體開發工具包”,也就是輔助開發某一類軟體的相關文件、範例和工具的集合都可以叫做“SDK”。HbuilderX的SDK配置視覺化介面中SDK有地圖、登入鑑權、支付、推送、分享、語音識別、統計7種,如圖3-9所示,我們這裡不對該頁面進行任何設定,如果在後面的開發中有需要,我們隨時可以進行設定。

 

圖3-9  SDK設定視覺化介面

模組許可權配置指的是我們開發的APP訪問手機系統各種原生能力的許可權進行設定。包括訪問網路,呼叫錄音、呼叫攝像、聯絡人、簡訊等等系統中的功能,我詳細整理一個許可權設定目錄表格。我們需要什麼許可權在模組許可權配置視覺化介面中可以進行勾選或者在程式碼試圖介面中進行填寫,視覺化介面如圖3-10所示。

 

3-10 模組許可權配置介面

 

序號

許可權

說明

<uses-feature android:name=\"android.hardware.camera\"/>

允許程式訪問照相裝置

<uses-feature android:name=\"android.hardware.camera.autofocus\"/>

允許使用攝像頭自動對焦

<uses-permission android:name=\"android.permission.ACCESS_CHECKIN_PROPERTIES\"/>

訪問登記屬性,讀取或寫入登記check-in資料庫屬性表的許可權

<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>

獲取錯略位置 ,通過WiFi或移動基站的方式獲取使用者錯略的經緯度資訊,定位精度大概誤差在30~1500米

<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>"

獲取精確位置 ,通過GPS晶片接收衛星的定位資訊,定位精度達10米以內

<uses-permission android:name=\"android.permission.ACCESS_LOCATION_EXTRA_COMMANDS\"/>

訪問定位額外命令 ,允許程式訪問額外的定位提供者指令

<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>

獲取模擬定位資訊,獲取模擬定位資訊,一般用於幫助開發者除錯應用

<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>

獲取網路狀態,獲取網路資訊狀態,如當前的網路連線是否有效

<uses-permission android:name=\"android.permission.ACCESS_SURFACE_FLINGER\"/>

Android平臺上底層的圖形顯示支援,一般用於遊戲或照相機預覽介面和底層模式的螢幕截圖

10 

<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>

獲取當前WiFi接入的狀態以及WLAN熱點的資訊

11 

<uses-permission android:name=\"android.permission.ACCOUNT_MANAGER\"/>

獲取賬戶驗證資訊,主要為GMail賬戶資訊,只有系統級程序才能訪問的許可權

12 

<uses-permission android:name=\"android.permission.ADD_VOICEMAIL\"/>

允許一個應用程式新增語音郵件系統

13 

<uses-permission android:name=\"android.permission.AUTHENTICATE_ACCOUNTS\"/>

驗證賬戶 ,允許一個程式通過賬戶驗證方式訪問賬戶管理ACCOUNT_MANAGER相關資訊

14 

<uses-permission android:name=\"android.permission.BATTERY_STATS\"/>

電量統計,獲取電池電量統計資訊

15 

<uses-permission android:name=\"android.permission.BIND_ACCESSIBILITY_SERVICE\"/>

允許使用AccessbilityService服務,該服務可以監聽我們手機的焦點,視窗變化,按鈕

16 

<uses-permission android:name=\"android.permission.BIND_APPWIDGET\"/>

繫結小外掛,允許一個程式告訴appWidget服務需要訪問小外掛的資料庫,只有非常少的應用才用到此許可權

17 

<uses-permission android:name=\"android.permission.BIND_CARRIER_MESSAGING_SERVICE\"/>

這個常量是在API層面棄用23. BIND_CARRIER_SERVICES代替,BIND_CARRIER_SERVICES:允許繫結到運營商應用程式中的服務的系統程序將具有此許可權。

18 

<uses-permission android:name=\"android.permission.BIND_DEVICE_ADMIN\"/>

繫結裝置管理,請求系統管理員接收者receiver,只有系統才能使用

19 

<uses-permission android:name=\"android.permission.BIND_DREAM_SERVICE\"/>

必須由一個DreamService要求,確保只有系統可以繫結到它

20 

<uses-permission android:name=\"android.permission.BIND_INPUT_METHOD\"/>

繫結輸入法 ,請求InputMethodService服務,只有系統才能使用

21 

<uses-permission android:name=\"android.permission.BIND_NFC_SERVICE\"/>

由HostApduService或OffHostApduService必須確保只有系統可以繫結到它

22 

<uses-permission android:name=\"android.permission.BIND_NOTIFICATION_LISTENER_SERVICE\"/>

必須要求由notificationlistenerservice,以確保只有系統可以繫結到它

23 

<uses-permission android:name=\"android.permission.BIND_PRINT_SERVICE\"/>

必須要求由printservice,以確保只有系統可以繫結到它

24 

<uses-permission android:name=\"android.permission.BIND_REMOTEVIEWS\"/>

繫結,必須通過RemoteViewsService服務來請求,只有系統才能用

25 

<uses-permission android:name=\"android.permission.BIND_TEXT_SERVICE\"/>

必須要求textservice(例如spellcheckerservice),以確保只有系統可以繫結到它

26 

<uses-permission android:name=\"android.permission.BIND_TV_INPUT\"/>

必須由TvInputService需要確保只有系統可以繫結到它

27 

<uses-permission android:name=\"android.permission.BIND_VOICE_INTERACTION\"/>

必須由VoiceInteractionService要求,確保只有系統可以繫結到它

28 

<uses-permission android:name=\"android.permission.BIND_VPN_SERVICE\"/>

繫結VPN服務必須通過VpnService服務來請求,只有系統才能用

29 

<uses-permission android:name=\"android.permission.BIND_WALLPAPER\"/>

繫結桌布 ,必須通過WallpaperService服務來請求,只有系統才能用

30 

<uses-permission android:name=\"android.permission.BLUETOOTH\"/>

使用藍芽,允許程式連線配對過的藍芽裝置

31 

<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>

藍芽管理 ,允許程式進行發現和配對新的藍芽裝置

32 

<uses-permission android:name=\"android.permission.BLUETOOTH_PRIVILEGED\"/>"

允許應用程式配對藍芽裝置,而無需使用者互動。這不是第三方應用程式可用

33 

<uses-permission android:name=\"android.permission.BODY_SENSORS\"/>

允許應用程式訪問使用者使用的感測器來測量他/她的身體內發生了什麼,如心率儀

34 

<uses-permission android:name=\"android.permission.BRICK\"/>

變成磚頭,能夠禁用手機,非常危險,顧名思義就是讓手機變成磚頭

35 

<uses-permission android:name=\"android.permission.BROADCAST_PACKAGE_REMOVED\"/>

應用刪除時廣播,當一個應用在刪除時觸發一個廣播

36 

<uses-permission android:name=\"android.permission.BROADCAST_SMS\"/>

收到簡訊時廣播,當收到簡訊時觸發一個廣播

37 

<uses-permission android:name=\"android.permission.BROADCAST_STICKY\"/>

連續廣播,允許一個程式收到廣播後快速收到下一個廣播

38 

<uses-permission android:name=\"android.permission.BROADCAST_WAP_PUSH\"/>

WAP PUSH服務收到後觸發一個廣播

39 

<uses-permission android:name=\"android.permission.CALL_PHONE\"/>

撥打電話 ,允許程式從非系統撥號器裡輸入電話號碼

40 

<uses-permission android:name=\"android.permission.CALL_PRIVILEGED\"/>

通話許可權 ,允許程式撥打電話,替換系統的撥號器介面

41 

<uses-permission android:name=\"android.permission.CAMERA\"/>

拍照許可權 ,允許訪問攝像頭進行拍照

42 

<uses-permission android:name=\"android.permission.CAPTURE_AUDIO_OUTPUT\"/>

允許一個應用程式捕獲音訊輸出。不被第三方應用使用

43 

<uses-permission android:name=\"android.permission.CAPTURE_SECURE_VIDEO_OUTPUT\"/>

允許一個應用程式捕獲視訊輸出。不被第三方應用使用

44 

<uses-permission android:name=\"android.permission.CAPTURE_VIDEO_OUTPUT\"/>

允許一個應用程式捕獲視訊輸出。不被第三方應用使用

45 

<uses-permission android:name=\"android.permission.CHANGE_COMPONENT_ENABLED_STATE\"/>

改變元件狀態 ,改變元件是否啟用狀態

46 

<uses-permission android:name=\"android.permission.CHANGE_CONFIGURATION\"/>

改變配置 ,允許當前應用改變配置,如定位

47 

<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>

改變網路狀態如是否能聯網

48 

<uses-permission android:name=\"android.permission.CHANGE_WIFI_MULTICAST_STATE\"/>

改變WiFi多播狀態

49 

<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>

改變WiFi狀態

50 

<uses-permission android:name=\"android.permission.CLEAR_APP_CACHE\"/>

清除應用快取

51 

<uses-permission android:name=\"android.permission.CLEAR_APP_USER_DATA\"/>"

清除應用的使用者資料

52 

<uses-permission android:name=\"android.permission.CONTROL_LOCATION_UPDATES\"/>

控制定位更新,允許獲得行動網路定位資訊改變

53 

<uses-permission android:name=\"android.permission.DELETE_CACHE_FILES\"/>

刪除快取檔案,允許應用刪除快取檔案

54 

<uses-permission android:name=\"android.permission.DELETE_PACKAGES\"/>

刪除應用,允許程式刪除應用

55 

<uses-permission android:name=\"android.permission.DEVICE_POWER\"/>

允許訪問底層電源管理

56 

<uses-permission android:name=\"android.permission.DIAGNOSTIC\"/>

應用診斷,允許程式到RW到診斷資源

57 

<uses-permission android:name=\"android.permission.DISABLE_KEYGUARD\"/>

禁用鍵盤鎖 ,允許程式禁用鍵盤鎖

58 

<uses-permission android:name=\"android.permission.DUMP\"/>

轉存系統資訊 ,允許程式獲取系統dump資訊從系統服務

59 

<uses-permission android:name=\"android.permission.EXPAND_STATUS_BAR\"/>

狀態列控制,允許程式擴充套件或收縮狀態列

60 

<uses-permission android:name=\"android.permission.FACTORY_TEST\"/>

工廠測試模式,允許程式執行工廠測試模式

61 

<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>

使用閃光燈,允許訪問閃光燈

62 

<uses-permission android:name=\"android.permission.FORCE_BACK\"/>

強制後退,允許程式強制使用back後退按鍵,無論Activity是否在頂層

63 

<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>

訪問賬戶Gmail列表 ,訪問GMail賬戶列表

64 

<uses-permission android:name=\"android.permission.GET_PACKAGE_SIZE\"/>

獲取應用大小 ,獲取應用的檔案大小

65 

<uses-permission android:name=\"android.permission.GET_TASKS\"/>

獲取任務資訊 android.permission.GET_TASKS,允許程式獲取當前或最近執行的應用

66 

<uses-permission android:name=\"android.permission.GET_TOP_ACTIVITY_INFO\"/>

允許頂部獲取窗體資訊

67 

<uses-permission android:name=\"android.permission.GLOBAL_SEARCH\"/>

允許全域性搜尋 ,允許程式使用全域性搜尋功能

68 

<uses-permission android:name=\"android.permission.HARDWARE_TEST\"/>

硬體測試,訪問硬體輔助裝置,用於硬體測試

69 

<uses-permission android:name=\"android.permission.INJECT_EVENTS\"/>

注射事件 ,允許訪問本程式的底層事件,獲取按鍵、軌跡球的事件流

70 

<uses-permission android:name=\"android.permission.INSTALL_LOCATION_PROVIDER\"/>

安裝定位提供,安裝定位提供

71 

<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\"/>

安裝應用程式,允許程式安裝應用

72 

<uses-permission android:name=\"android.permission.INSTALL_SHORTCUT\"/>

建立快捷方式

 

73 

<uses-permission android:name=\"android.permission.INTERNAL_SYSTEM_WINDOW\"/>

內部系統視窗 ,允許程式開啟內部視窗,不對第三方應用程式開放此許可權

74 

<uses-permission android:name=\"android.permission.INTERNET\"/>

訪問網路,訪問網路連線,可能產生GPRS流量

75 

<uses-permission android:name=\"android.permission.KILL_BACKGROUND_PROCESSES\"/>

結束後臺程序,允許程式呼叫killBackgroundProcesses(String).方法結束後臺程序

76 

<uses-permission android:name=\"android.permission.LOCATION_HARDWARE\"/>

允許一個應用程式捕獲視訊輸出。不被第三方應用使用

77 

<uses-permission android:name=\"android.permission.MANAGE_ACCOUNTS\"/>

管理賬戶,允許程式管理AccountManager中的賬戶列表

78 

<uses-permission android:name=\"android.permission.MANAGE_APP_TOKENS\"/>

管理程式引用,管理建立、摧毀、Z軸順序,僅用於系統

79 

<uses-permission android:name=\"android.permission.MANAGE_DOCUMENTS\"/>

允許一個應用程式來管理文件的訪問,通常是一個文件選擇器部分

80 

<uses-permission android:name=\"android.permission.MASTER_CLEAR\"/>

軟格式化,允許程式執行軟格式化,刪除系統配置資訊

81 

<uses-permission android:name=\"android.permission.MEDIA_CONTENT_CONTROL\"/>

允許一個應用程式知道什麼是播放和控制其內容。不被第三方應用使用

82 

<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>

修改聲音設定,修改聲音設定資訊

83 

<uses-permission android:name=\"android.permission.MODIFY_PHONE_STATE\"/>

修改電話狀態,修改電話狀態,如飛航模式,但不包含替換系統撥號器介面

84 

<uses-permission android:name=\"android.permission.MOUNT_FORMAT_FILESYSTEMS\"/>

格式化檔案系統,格式化可移動檔案系統,比如格式化清空SD卡

85 

<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>

掛載檔案系統,掛載、反掛載外部檔案系統

86 

<uses-permission android:name=\"android.permission.NFC\"/>

允許NFC通訊,允許程式執行NFC近距離通訊操作,用於移動支援

87 

<uses-permission android:name=\"android.permission.PERSISTENT_ACTIVITY\"/>

永久,建立一個永久的Activity,該功能標記為將來將被移除

88 

<uses-permission android:name=\"android.permission.PROCESS_OUTGOING_CALLS\"/>

處理撥出電話 ,允許程式監視,修改或放棄播出電話

89 

<uses-permission android:name=\"android.permission.READ_CALENDAR\"/>

讀取日程提醒 ,允許程式讀取使用者的日程資訊

90 

<uses-permission android:name=\"android.permission.READ_CALL_LOG\"/>

讀取通話記錄

91 

<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>

讀取聯絡人,允許應用訪問聯絡人通訊錄資訊

92 

<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>

程式可以讀取裝置外部儲存空間(內建SDcard和外接SDCard)的檔案,如果您的App已經添加了”WRITE_EXTERNAL_STORAGE”許可權,則就沒必要新增讀的許可權了,寫許可權已經包含了讀許可權了

93 

<uses-permission android:name=\"android.permission.READ_FRAME_BUFFER\"/>

螢幕截圖 ,讀取幀快取用於螢幕截圖

94 

<uses-permission android:name=\"android.permission.READ_HISTORY_BOOKMARKS\"/>

讀取收藏夾和歷史記錄 ,讀取瀏覽器收藏夾和歷史記錄

95 

<uses-permission android:name=\"android.permission.READ_INPUT_STATE\"/>

讀取輸入狀態,讀取當前鍵的輸入狀態,僅用於系統

96 

<uses-permission android:name=\"android.permission.READ_LOGS\"/>

讀取系統日誌 ,讀取系統底層日誌

97 

<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>

讀取電話狀態 ,訪問電話狀態

98 

<uses-permission android:name=\"android.permission.READ_PROFILE\"/>

訪問使用者個人資料

99 

<uses-permission android:name=\"android.permission.READ_SMS\"/>

讀取簡訊內容

100 

<uses-permission android:name=\"android.permission.READ_SOCIAL_STREAM\"/>

讀取使用者的社交資訊流

 

101 

<uses-permission android:name=\"android.permission.READ_SYNC_SETTINGS\"/>

讀取同步設定,讀取Google線上同步設定

102 

<uses-permission android:name=\"android.permission.READ_SYNC_STATS\"/>

讀取同步狀態,獲得Google線上同步狀態

103 

<uses-permission android:name=\"android.permission.READ_USER_DICTIONARY\"/>

從一個提供器中獲取資料,針對對應的提供器,應用程式需要“讀訪問許可權”

104 

<uses-permission android:name=\"android.permission.READ_VOICEMAIL\"/>

允許應用程式在系統讀取語音郵件

105 

<uses-permission android:name=\"android.permission.REBOOT\"/>

重啟裝置 ,允許程式重新啟動裝置

106 

<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>

允許程式開機自動執行

107 

<uses-permission android:name=\"android.permission.RECEIVE_MMS\"/>

接收彩信

108 

<uses-permission android:name=\"android.permission.RECEIVE_SMS\"/>

接收簡訊

109 

<uses-permission android:name=\"android.permission.RECEIVE_WAP_PUSH\"/>

接收WAP PUSH資訊

110 

<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>

錄製聲音通過手機或耳機的麥克

111 

<uses-permission android:name=\"android.permission.REORDER_TASKS\"/>

排序系統任務,重新排序系統Z軸執行中的任務

112 

<uses-permission android:name=\"android.permission.RESTART_PACKAGES\"/>

結束系統任務,結束任務通過restartPackage(String)方法,該方式將在外來放棄

113 

<uses-permission android:name=\"android.permission.SEND_RESPOND_VIA_MESSAGE\"/>

允許使用者在來電的時候用你的應用進行即時的簡訊息回覆

114 

<uses-permission android:name=\"android.permission.SEND_SMS\"/>

傳送簡訊

115 

<uses-permission android:name=\"android.permission.SET_ACTIVITY_WATCHER\"/>

設定Activity觀察其 ,設定Activity觀察器一般用於monkey測試

116 

<uses-permission android:name=\"android.permission.SET_ALARM\"/>

設定鬧鈴提醒

117 

<uses-permission android:name=\"android.permission.SET_ALWAYS_FINISH\"/>"

設定程式在後臺是否總是退出

118 

<uses-permission android:name=\"android.permission.SET_ANIMATION_SCALE\"/>

設定全域性動畫縮放

119 

<uses-permission android:name=\"android.permission.SET_DEBUG_APP\"/>

設定除錯程式,一般用於開發

120 

<uses-permission android:name=\"android.permission.SET_ORIENTATION\"/>

設定螢幕方向為橫屏或標準方式顯示,不用於普通應用

121 

<uses-permission android:name=\"android.permission.SET_POINTER_SPEED\"/>

無法被第三方應用獲得,系統許可權

122 

<uses-permission android:name=\"android.permission.SET_PREFERRED_APPLICATIONS\"/>

設定應用的引數,已不再工作具體檢視addPackageToPreferred(String) 介紹

123 

<uses-permission android:name=\"android.permission.SET_PROCESS_LIMIT\"/>

允許程式設定最大的程序數量的限制

124 

<uses-permission android:name=\"android.permission.SET_TIME\"/>

設定系統時間

125 

<uses-permission android:name=\"android.permission.SET_TIME_ZONE\"/>

設定系統時區

126 

<uses-permission android:name=\"android.permission.SET_WALLPAPER\"/>

設定桌面桌布

127 

<uses-permission android:name=\"android.permission.SET_WALLPAPER_HINTS\"/>

設定桌布建議

128 

<uses-permission android:name=\"android.permission.SIGNAL_PERSISTENT_PROCESSES\"/>

傳送一個永久的程序訊號

129 

<uses-permission android:name=\"android.permission.STATUS_BAR\"/>

狀態列控制,允許程式開啟、關閉、禁用狀態列

130 

<uses-permission android:name=\"android.permission.SUBSCRIBED_FEEDS_READ\"/>

訪問訂閱內容,訪問訂閱資訊的資料庫

131 

<uses-permission android:name=\"android.permission.SUBSCRIBED_FEEDS_WRITE\"/>

寫入訂閱內容 ,寫入或修改訂閱內容的資料庫

132 

<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>

顯示系統視窗

133 

<uses-permission android:name=\"android.permission.TRANSMIT_IR\"/>

允許使用裝置的紅外發射器,如果可用

134 

<uses-permission android:name=\"android.permission.UNINSTALL_SHORTCUT\"/>

刪除快捷方式

135 

<uses-permission android:name=\"android.permission.UPDATE_DEVICE_STATS\"/>

更新裝置狀態

136 

<uses-permission android:name=\"android.permission.USE_CREDENTIALS\"/>

使用證書 ,允許程式請求驗證從AccountManager

137 

<uses-permission android:name=\"android.permission.USE_FINGERPRINT\"/>

允許應用程式使用指紋硬體

138 

<uses-permission android:name=\"android.permission.USE_SIP\"/>

允許程式使用SIP視訊服務

139 

<uses-permission android:name=\"android.permission.VIBRATE\"/>

允許振動

140 

<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>

喚醒鎖定,允許程式在手機螢幕關閉後後臺程序仍然執行

141 

<uses-permission android:name=\"android.permission.WRITE_APN_SETTINGS\"/>

寫入GPRS接入點設定 ,寫入網路GPRS接入點設定

142 

<uses-permission android:name=\"android.permission.WRITE_CALENDAR\"/>

寫入日程提醒,寫入日程,但不可讀取

143 

<uses-permission android:name=\"android.permission.WRITE_CALL_LOG\"/>

允許程式寫入(但是不能讀)使用者的聯絡人資料

144 

<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>

寫入聯絡人,寫入聯絡人,但不可讀取

145 

<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>

允許程式寫入外部儲存,如SD卡上寫檔案

146 

<uses-permission android:name=\"android.permission.WRITE_GSERVICES\"/>

允許程式寫入Google Map服務資料

147 

<uses-permission android:name=\"android.permission.WRITE_HISTORY_BOOKMARKS\"/>

寫入瀏覽器歷史記錄或收藏夾,但不可讀取

148 

<uses-permission android:name=\"android.permission.WRITE_PROFILE\"/>

允許程式寫入個人資料資料

149 

<uses-permission android:name=\"android.permission.WRITE_SECURE_SETTINGS\"/>

允許程式讀寫系統安全敏感的設定

150 

<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>

允許讀寫系統設定

151 

<uses-permission android:name=\"android.permission.WRITE_SMS\"/>

允許編寫簡訊

152 

<uses-permission android:name=\"android.permission.WRITE_SOCIAL_STREAM\"/>

讀取使用者的社交資訊流

153 

<uses-permission android:name=\"android.permission.WRITE_SYNC_SETTINGS\"/>

寫入Google線上同步設定

154 

<uses-permission android:name=\"android.permission.WRITE_USER_DICTIONARY\"/>

允許應用程式向用戶詞典中寫入新詞

155 

<uses-permission android:name=\"android.permission.WRITE_VOICEMAIL\"/>

允許應用程式修改和刪除系統中的現有的語音郵件,只有系統才能使用

156 

<uses-permission android:name=\"android.permission.RECEIVE_USER_PRESENT\"/>

使用者喚醒機器的許可權!

157 

<uses-permission android:name=\"android.permission.BLUETOOTH\"/>

允許程式連線配對過的藍芽裝置

158 

<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>

允許程式進行發現和配對新的藍芽裝置

 

五、App常用其它設定

App常用其它設定視覺化介面中,有幾個引數詳細介紹一下:

1.自定義Webview的404等錯誤頁面,表示Webview視窗載入頁面錯誤時顯示的頁面。我們現在不進行任何設定,當我們後面開發的時候需要我們在進行設定即可。

對應的程式碼:

"plus": {  "error": {  
    "url": "error.html"  
}

2.Android設定中,有個UrlSchemes,表示實現被第三方應用呼叫,如果你的App想要在手機系統中註冊一個scheme協議,方便其他App呼叫你的App,就可以詳細設定此引數。對應的程式碼:

"plus": {  
"distribute": {  
    "google": {  
        "schemes": [  
            "test"  
        ],  
        //...  
    },  
    //...  
},  
//...  
},  
//...   

 

schemes引數說明:為字串陣列,每個字串為一個urlscheme,使用小寫字母(不要使用特殊字元、中文),可設定多個。比如設定為test,那麼其他App呼起你的app的scheme協議就是test://。

安裝程式後,瀏覽器中,我們可以在html頁面中,通過href直接呼叫應用:<a href="test://abc">test:<a>

在其它應用中通過href呼叫Url Scheme傳遞過來的值,可以通過plus.runtime.arguments獲取

其值為完整的urlscheme字串,如上面href的值啟動應用後獲取的plus.runtime.arguments值為“test://abc”

程式碼示例如下:

document.addEventListener('plusready',function(){  
    checkArguments();  
},false);  
// 判斷啟動方式  
function checkArguments(){  
    console.log("plus.runtime.launcher: "+plus.runtime.launcher);  
    var args= plus.runtime.arguments;  
    if(args){  
        // 處理args引數,如直達到某新頁面等  
    }  
}  

 

// 處理從後臺恢復  

document.addEventListener('newintent',function(){  
    console.log("addEventListener: newintent");  
    checkArguments();  
},false);  

 

    3.minSdkVersion設定:minSdkVersion用於指定應用相容的最低Android版本(API等級)。對應程式碼:

"plus": {  
    "distribute": {  
        "google":{  
            "minSdkVersion": 22  
        }  
    }  
}

 

4.targetSdkVersion設定:用於指定應用適配的Android版本(API等級)。在Android系統中設定低版本的targetSdkVersion會使APP相容模式執行,也就可能無法用到新系統的特性,甚至在相容模式下執行可能存在安全漏洞等問題。隨著Android系統的升級,一些應用市場會要求設定較高的targetSdkVersion才可以提交。我們把引數設定為26,因為華為應用市場要求的最低版本就是26。對應程式碼:

"plus": {  
    "distribute": {  
        "google":{  
            "targetSdkVersion": 26  
        }  
    }  
} 

 

 六、原始碼試圖

我們的基本引數在視覺化介面進行了設定,最終的程式碼呈現就是在原始碼試圖,其實質是一個JSON資料呈現,我們配置的最終程式碼如下:

 

{
    "@platforms" : [ "android", "iPhone", "iPad" ],
    "id" : "H5AF8C520",
    /*應用的標識*/
    "name" : "程式設計之路",
    /*應用名稱,程式桌面圖示名稱*/
    "version" : {
        "name" : "1.0.0",
        /*應用版本名稱*/
        "code" : ""
    },
    "description" : "",
    /*應用描述資訊*/
    "icons" : {
        "72" : "icon.png"
    },
    "launch_path" : "index.html",
    /*應用的入口頁面,預設為根目錄下的index.html;支援網路地址,必須以http://或https://開頭*/
    "developer" : {
        "name" : "",
        /*開發者名稱*/
        "email" : "",
        /*開發者郵箱地址*/
        "url" : "" /*開發者個人主頁地址*/
    },
    "permissions" : {
        "Share" : {
            "description" : "分享"
        },
        "Accelerometer" : {
            "description" : "訪問加速度感應器"
        },
        "Audio" : {
            "description" : "訪問麥克風"
        },
        "Messaging" : {
            "description" : "短彩郵件外掛"
        },
        "Cache" : {
            "description" : "管理應用快取"
        },
        "Camera" : {
            "description" : "訪問攝像頭"
        },
        "Console" : {
            "description" : "跟蹤除錯輸出日誌"
        },
        "Contacts" : {
            "description" : "訪問系統聯絡人資訊"
        },
        "Device" : {
            "description" : "訪問裝置資訊"
        },
        "Downloader" : {
            "description" : "檔案下載管理"
        },
        "Events" : {
            "description" : "應用擴充套件事件"
        },
        "File" : {
            "description" : "訪問本地檔案系統"
        },
"Gallery" : { "description" : "訪問系統相簿" }, "Geolocation" : { "description" : "訪問位置資訊" }, "Invocation" : { "description" : "使用Native.js能力" }, "Orientation" : { "description" : "訪問方向感應器" }, "Proximity" : { "description" : "訪問距離感應器" }, "Storage" : { "description" : "管理應用本地資料" }, "Uploader" : { "description" : "管理檔案上傳任務" }, "Runtime" : { "description" : "訪問執行期環境" }, "XMLHttpRequest" : { "description" : "跨域網路訪問" }, "Zip" : { "description" : "檔案壓縮與解壓縮" }, "Barcode" : { "description" : "管理二維碼掃描外掛" }, "Maps" : { "description" : "管理地圖外掛" }, "Speech" : { "description" : "管理語音識別外掛" }, "Webview" : { "description" : "視窗管理" }, "NativeUI" : { "description" : "原生UI控制元件" }, "Navigator" : { "description" : "瀏覽器資訊" }, "NativeObj" : { "description" : "原生物件" } }, "plus" : { "splashscreen" : { "autoclose" : false, /*是否自動關閉程式啟動介面,true表示應用載入應用入口頁面後自動關閉;false則需調plus.navigator.closeSplashscreen()關閉*/ "waiting" : true /*是否在程式啟動介面顯示等待雪花,true表示顯示,false表示不顯示。*/ }, "statusbar" : { "immersed" : true }, "popGesture" : "close", /*設定應用預設側滑返回關閉Webview視窗,"none"為無側滑返回功能,"hide"為側滑隱藏Webview視窗。參考http://ask.dcloud.net.cn/article/102*/ "runmode" : "normal", /*應用的首次啟動執行模式,可取liberate或normal,liberate模式在第一次啟動時將解壓應用資源(Android平臺File API才可正常訪問_www目錄)*/ "signature" : "Sk9JTiBVUyBtYWlsdG86aHIyMDEzQGRjbG91ZC5pbw==", /*可選,保留給應用簽名,暫不使用*/ "distribute" : { "apple" : { "appid" : "", /*iOS應用標識,蘋果開發網站申請的appid,如io.dcloud.HelloH5*/ "mobileprovision" : "", /*iOS應用打包配置檔案*/ "password" : "", /*iOS應用打包個人證書匯入密碼*/ "p12" : "", /*iOS應用打包個人證書,打包配置檔案關聯的個人證書*/ "devices" : "universal", /*iOS應用支援的裝置型別,可取值iphone/ipad/universal*/ "frameworks" : [] /*呼叫Native.js呼叫原生Objective-c API需要引用的FrameWork,如需呼叫GameCenter,則新增"GameKit.framework"*/ }, "google" : { "packagename" : "", /*Android應用包名,如io.dcloud.HelloH5*/ "keystore" : "", /*Android應用打包使用的金鑰庫檔案*/ "password" : "", /*Android應用打包使用金鑰庫中證書的密碼*/ "aliasname" : "", /*Android應用打包使用金鑰庫中證書的別名*/ "permissions" : [ "<uses-feature android:name=\"android.hardware.camera\"/>", "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>", "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>", "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>", "<uses-permission android:name=\"android.permission.CAMERA\"/>", "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", "<uses-permission android:name=\"android.permission.INTERNET\"/>", "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>", "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>", "<uses-permission android:name=\"android.permission.READ_LOGS\"/>", "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", "<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>", "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>", "<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>", "<uses-permission android:name=\"android.permission.VIBRATE\"/>", "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>", "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>", "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" ], "targetSdkVersion" : 26 }, /*使用Native.js呼叫原生安卓API需要使用到的系統許可權*/ "orientation" : [ "portrait-primary" ], /*應用支援的方向,portrait-primary:豎屏正方向;portrait-secondary:豎屏反方向;landscape-primary:橫屏正方向;landscape-secondary:橫屏反方向*/ "icons" : { "ios" : { "prerendered" : true, /*應用圖示是否已經高亮處理,在iOS6及以下裝置上有效*/ "auto" : "", /*應用圖示,解析度:512x512,用於自動生成各種尺寸程式圖示*/ "iphone" : { "normal" : "", /*iPhone3/3GS程式圖示,解析度:57x57*/ "retina" : "", /*iPhone4程式圖示,解析度:114x114*/ "retina7" : "", /*iPhone4S/5/6程式圖示,解析度:120x120*/ "retina8" : "", /*iPhone6 Plus程式圖示,解析度:180x180*/ "spotlight-normal" : "", /*iPhone3/3GS Spotlight搜尋程式圖示,解析度:29x29*/ "spotlight-retina" : "", /*iPhone4 Spotlight搜尋程式圖示,解析度:58x58*/ "spotlight-retina7" : "", /*iPhone4S/5/6 Spotlight搜尋程式圖示,解析度:80x80*/ "settings-normal" : "", /*iPhone4設定頁面程式圖示,解析度:29x29*/ "settings-retina" : "", /*iPhone4S/5/6設定頁面程式圖示,解析度:58x58*/ "settings-retina8" : "", /*iPhone6Plus設定頁面程式圖示,解析度:87x87*/ "app@2x" : "unpackage/res/icons/120x120.png", "app@3x" : "unpackage/res/icons/180x180.png", "notification@2x" : "unpackage/res/icons/40x40.png", "notification@3x" : "unpackage/res/icons/60x60.png", "settings@2x" : "unpackage/res/icons/58x58.png", "settings@3x" : "unpackage/res/icons/87x87.png", "spotlight@2x" : "unpackage/res/icons/80x80.png", "spotlight@3x" : "unpackage/res/icons/120x120.png" }, "ipad" : { "normal" : "", /*iPad普通螢幕程式圖示,解析度:72x72*/ "retina" : "", /*iPad高分屏程式圖示,解析度:144x144*/ "normal7" : "", /*iPad iOS7程式圖示,解析度:76x76*/ "retina7" : "", /*iPad iOS7高分屏程式圖示,解析度:152x152*/ "spotlight-normal" : "", /*iPad Spotlight搜尋程式圖示,解析度:50x50*/ "spotlight-retina" : "", /*iPad高分屏Spotlight搜尋程式圖示,解析度:100x100*/ "spotlight-normal7" : "", /*iPad iOS7 Spotlight搜尋程式圖示,解析度:40x40*/ "spotlight-retina7" : "", /*iPad iOS7高分屏Spotlight搜尋程式圖示,解析度:80x80*/ "settings-normal" : "", /*iPad設定頁面程式圖示,解析度:29x29*/ "settings-retina" : "", /*iPad高分屏設定頁面程式圖示,解析度:58x58*/ "app" : "unpackage/res/icons/76x76.png", "app@2x" : "unpackage/res/icons/152x152.png", "notification" : "unpackage/res/icons/20x20.png", "notification@2x" : "unpackage/res/icons/40x40.png",