Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中的狀態保存-SharedPreferences和Bundle(文末小彩蛋)

Android中的狀態保存-SharedPreferences和Bundle(文末小彩蛋)

編輯:關於Android編程

SharedPreferences 是使用鍵值對的方式來存儲數據的。也就是說當保存一條數據的時候,需要給這條數據提供一個對應的鍵,這樣在讀取數據的時候就可以通過這個鍵把相應的值取出來。而且SharedPreferences 還支持多種不同的數據類型存儲,如果存儲的數據類型是整型,那麼讀取出來的數據也是整型的,存儲的數據是一個字符串,讀取出來的數據仍然是字符串。這樣你應該就能明顯地感覺到,使用SharedPreferences 來進行數據持久化要比使用文件方便很多,下面我們就來看一下它的具體用法吧。

將數據存儲到SharedPreferences 中
要想使用SharedPreferences來存儲數據,首先需要獲取到SharedPreferences對象。Android中主要提供了三種方法用於得到SharedPreferences 對象。
1. Context 類中的getSharedPreferences()方法
此方法接收兩個參數,第一個參數用於指定SharedPreferences 文件的名稱,如果指定的文件不存在則會創建一個,SharedPreferences 文件都是存放在/data/data//shared_prefs/目錄下的。第二個參數用於指定操作模式,主要有兩種模式可以選擇,MODE_PRIVATE 和MODE_MULTI_PROCESS。MODE_PRIVATE 仍然是默認的操作模式, 和直接傳入0 效果是相同的, 表示只有當前的應用程序才可以對這個SharedPreferences 文件進行讀寫。MODE_MULTI_PROCESS 則一般是用於會有多個進程中對同一個SharedPreferences 文件進行讀寫的情況。類似地,MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE 這兩種模式已在Android 4.2 版本中被廢棄。
2. Activity 類中的getPreferences()方法
這個方法和Context 中的getSharedPreferences()方法很相似,不過它只接收一個操作模式參數,因為使用這個方法時會自動將當前活動的類名作為SharedPreferences 的文件名。
3. PreferenceManager 類中的getDefaultSharedPreferences()方法這是一個靜態方法,它接收一個Context 參數,並自動使用當前應用程序的包名作為前綴來命名SharedPreferences 文件。得到了SharedPreferences 對象之後,就可以開始向SharedPreferences 文件中存儲數據了,
主要可以分為三步實現。
1. 調用SharedPreferences 對象的edit()方法來獲取一個SharedPreferences.Editor 對象。
2. 向SharedPreferences.Editor 對象中添加數據,比如添加一個布爾型數據就使用
putBoolean 方法,添加一個字符串則使用putString()方法,以此類推。
3. 調用commit()方法將添加的數據提交,從而完成數據存儲操作。

 

示例代碼:

 

		SharedPreferences.Editor editor = getSharedPreferences("NetworkPara", MODE_PRIVATE).edit();
		editor.putBoolean("flagSend", flagSend);
		editor.commit();

從SharedPreferences 中讀取數據
你應該已經感覺到了,使用SharedPreferences 來存儲數據是非常簡單的,不過下面還有更好的消息,其實從SharedPreferences 文件中讀取數據更加的簡單。SharedPreferences 對象中提供了一系列的get方法用於對存儲的數據進行讀取,每種get方法都對應了SharedPreferences.Editor 中的一種put 方法,比如讀取一個布爾型數據就使用getBoolean()方法,讀取一個字符串就使用getString()方法。這些get 方法都接收兩個參數,第一個參數是鍵,傳入存儲數據時使用的鍵就可以得到相應的值了,第二個參數是默認值,即表示當傳入的鍵找不到對應的值時,會以什麼樣的默認值進行返回。

 

示例代碼:

 

		SharedPreferences pref = getSharedPreferences("NetworkPara", MODE_PRIVATE);
		flagSend= pref.getBoolean("flagSend", true);
所有之前存儲的數據都成功讀取出來了!通過這個例子,我們就把SharedPreferences 存儲的知識也學習完了。相比之下,SharedPreferences 存儲確實要比文本存儲簡單方便了許多,應用場景也多了不少,比如很多應用程序中的偏好設置功能其實都使用到了SharedPreferences技術。

 

 

 

活動被回收了怎麼辦
前面我們已經說過,當一個活動進入到了停止狀態,是有可能被系統回收的。那麼想象以下場景,應用中有一個活動A,用戶在活動A 的基礎上啟動了活動B,活動A 就進入了停止狀態,這個時候由於系統內存不足,將活動A 回收掉了,然後用戶按下Back 鍵返回活動A,會出現什麼情況呢?其實還是會正常顯示活動A 的,只不過這時並不會執行onRestart()方法,而是會執行活動A 的onCreate()方法,因為活動A 在這種情況下會被重新創建一次。這樣看上去好像一切正常,可是別忽略了一個重要問題,活動A 中是可能存在臨時數據和狀態的。打個比方,MainActivity 中有一個文本輸入框,現在你輸入了一段文字,然後啟動NormalActivity,這時MainActivity 由於系統內存不足被回收掉,過了一會你又點擊了Back 鍵回到MainActivity,你會發現剛剛輸入的文字全部都沒了,因為MainActivity 被重新創建了。
如果我們的應用出現了這種情況,是會嚴重影響用戶體驗的,所以必須要想想辦法解決這個問題。查閱文檔可以看出,Activity 中還提供了一個onSaveInstanceState()回調方法,這個方法會保證一定在活動被回收之前調用,因此我們可以通過這個方法來解決活動被回收時臨時數據得不到保存的問題。onSaveInstanceState()方法會攜帶一個Bundle 類型的參數,Bundle 提供了一系列的方法用於保存數據,比如可以使用putString()方法保存字符串,使用putInt()方法保存整型數據,以此類推。每個保存方法需要傳入兩個參數,第一個參數是鍵,用於後面從Bundle 中取值,第二個參數是真正要保存的內容。

示例代碼:

 

	@Override
	public void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);
		outState.putBoolean("flagSend",flagSend);
		Log.d(TAG, "outState.putBoolean(\"flagSend\",flagSend)" + flagSend);
	}

 

 

數據是已經保存下來了,那麼我們應該在哪裡進行恢復呢?細心的你也許早就發現,我們一直使用的onCreate()方法其實也有一個Bundle 類型的參數。這個參數在一般情況下都是null,但是當活動被系統回收之前有通過onSaveInstanceState()方法來保存數據的話,這個參數就會帶有之前所保存的全部數據,我們只需要再通過相應的取值方法將數據取出即可。修改MainActivity 的onCreate()方法,如下所示:

示例代碼:

 

		if(savedInstanceState != null){
			flagSend = savedInstanceState.getBoolean("flagSend");
			Log.d(TAG, "savedInstanceState.getBoolean(\"flagSend\")" + flagSend);
			if(flagSend){
				isShowSend_iv_networkpara.setBackgroundResource(R.drawable.ucar_check);
			}else {
				isShowSend_iv_networkpara.setBackgroundResource(R.drawable.ucar_uncheck);
			}
		}

 

 

文末小彩蛋:

 

Android模擬器Genymotion添加ARM程序運行環境的方法

 

搞開發也很多年了,還是第一次寫blog,給自己留一些記錄吧

自從用了Genymotion這個號稱快到極致的Android模擬器以後,很多時候調試程序都不想用真機了,SDK帶效率低下的官方模擬器因為效率太低也放棄了(據說可以通過配置來改進一直沒去嘗試過)

通過模擬器和hierarchyviewer可以很方便查看很多程序的界面布局,用於學習非常不錯,不過也一直有個問題,就是很多ARM的程序都沒法安裝(比如微信),畢竟是用的vbox虛擬機,相當於在x86環境下運行的,限定ARM的程序自然是無法安裝了,會提示"INSTALL_FAILED_CPU_ABI_INCOMPATIBLE"這個錯誤,無法向模擬器部署,如果直接安裝APK則會提示與您的設備不兼容。

那麼是不是就沒有辦法了呢?通過查找資料,發現了解決的方法,相信很多人也早就知道了,參考xda的這篇文章:

http://forum.xda-developers.com/showthread.php?t=2528952

使用方法也很簡單,就是將zip文件直接拖放到Genymotion的player窗口中即可自動安裝(安裝後要重啟一次)。

不過在實際操作的過程中,發現在部分模擬器環境下,將zip文件拖進去以後會報錯,提示"an error occurred while deploying a file"。經過實驗,用DDMS也沒法手動安裝zip包裡的東西(要復制到system下)。個人認為原因可能在於設備沒有在root的狀態下,但是Genymotion應該是已經root了的啊,最後解決方法是通過re管理器之類的文件管理工具,先獲得root的讀寫權限,然後將文件手動復制過去替換就行了(記得要重啟)。其實這方法也是xda的帖子裡面提到的。應該還有更簡單的方法,其實就是將zip包中的system/lib下的文件都復制到設備就行了。

這麼操作以後,就可以安裝各種ARM的程序了,微信也正常安裝,經測試使用也沒有什麼問題。

沒試過Genymotion的朋友推薦試試這個模擬器,很多時候,比真機要更快捷方便,性能也很棒

安兔兔測試,不能跑3D測試部分,不過分數還是不錯的...

 

Android應用權限

Android應用需要在AndroidManifest.xml添加某些權限。才能調用系統功能。如應用提供震動功能。必須在配置文件中加入震動權限。

 

屬性

說明

android.permission.ACCESS_CHECKIN_PROPERTIES

允許讀寫訪問"properties"表在checkin數據庫中,改值可以修改上傳

android.permission.ACCESS_COARSE_LOCATION

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

android.permission.ACCESS_FINE_LOCATION

通過GPS芯片接收衛星的定位信息,定位精度達10米以內

android.permission.ACCESS_LOCATION_EXTRA_COMMANDS

允許應用程序訪問額外的位置提供命令

android.permission.ACCESS_MOCK_LOCATION

獲取模擬定位信息,一般用於幫助開發者調試應用

android.permission.ACCESS_NETWORK_STATE

獲取網絡信息狀態,如當前的網絡連接是否有效

android.permission.ACCESS_SURFACE_FLINGER

Android平台上底層的圖形顯示支持,一般用於游戲或照相機預覽界面和底層模式的屏幕截圖

android.permission.ACCESS_WIFI_STATE

允許程序訪問Wi-Fi網絡狀態信息

android.permission.ACCOUNT_MANAGER

獲取賬戶驗證信息,主要為GMail賬戶信息,只有系統級進程才能訪問的權限

android.permission.AUTHENTICATE_ACCOUNTS

允許一個程序通過賬戶驗證方式訪問賬戶管理ACCOUNT_MANAGER相關信息

android.permission.ADD_SYSTEM_SERVICE

允許程序發布系統級服務

android.permission.BATTERY_STATS

允許程序更新手機電池統計信息

android.permission.BIND_APPWIDGET

允許一個程序告訴appWidget服務需要訪問小插件的數據庫,只有非常少的應用才用到此權限

android.permission.BIND_DEVICE_ADMIN

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

android.permission.BIND_INPUT_METHOD

請求InputMethodService服務,只有系統才能使用

android.permission.BIND_REMOTEVIEWS

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

android.permission.BIND_WALLPAPER

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

android.permission.BLUETOOTH

允許程序連接到已配對的藍牙設備

android.permission.BLUETOOTH_ADMIN

允許程序發現和配對藍牙設備

android.permission.BRICK

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

android.permission.BROADCAST_PACKAGE_REMOVED

允許程序廣播一個提示消息在一個應用程序包已經移除後

android.permission.BROADCAST_STICKY

允許一個程序廣播常用intents

android.permission.CALL_PHONE

允許一個程序初始化一個電話撥號不需通過撥號用戶界面需要用戶確認

android.permission.CALL_PRIVILEGED

允許一個程序撥打任何號碼,包含緊急號碼無需通過撥號用戶界面需要用戶確認

android.permission.CAMERA

請求訪問使用照相設備

android.permission.CHANGE_COMPONENT_ENABLED_STATE

改變組件是否啟用狀態

android.permission.CHANGE_CONFIGURATION

允許一個程序修改當前設置,如本地化

android.permission.CHANGE_NETWORK_STATE

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

android.permission.CHANGE_WIFI_MULTICAST_STATE

改變WiFi多播狀態

android.permission.CHANGE_WIFI_STATE

允許程序改變Wi-Fi連接狀態

android.permission.CLEAR_APP_CACHE

清除應用緩存

android.permission.CLEAR_APP_USER_DATA

清除應用的用戶數據

android.permission.CWJ_GROUP

允許CWJ賬戶組訪問底層信息

android.permission.CELL_PHONE_MASTER_EX

手機優化大師擴展權限

android.permission.CONTROL_LOCATION_UPDATES

允許獲得移動網絡定位信息改變

android.permission.DELETE_CACHE_FILES

允許程序刪除緩存文件

android.permission.DELETE_PACKAGES

允許程序刪除應用

android.permission.DEVICE_POWER

允許訪問底層電源管理

android.permission.DIAGNOSTIC

允許程序RW診斷資源

android.permission.DISABLE_KEYGUARD

允許程序禁用鍵盤鎖

android.permission.DUMP

允許程序返回狀態抓取信息從系統服務

android.permission.EXPAND_STATUS_BAR

允許一個程序擴展收縮在狀態欄,Android開發網提示應該是一個類似WindowsMobile中的托盤程序

android.permission.FACTORY_TEST

作為一個工廠測試程序,運行在root用戶

android.permission.FLASHLIGHT

訪問閃光燈,Android開發網提示HTCDream不包含閃光燈

android.permission.FORCE_BACK

允許程序強行一個後退操作是否在頂層activities

android.permission.FOTA_UPDATE

暫時不了解這是做什麼使用的,Android開發網分析可能是一個預留權限.

android.permission.GET_ACCOUNTS

訪問GMail賬戶列表

android.permission.GET_PACKAGE_SIZE

允許一個程序獲取任何package占用空間容量

android.permission.GET_TASKS

允許一個程序獲取信息有關當前或最近運行的任務,一個縮略的任務狀態,是否活動等等

android.permission.GLOBAL_SEARCH

允許程序使用全局搜索功能

android.permission.HARDWARE_TEST

訪問硬件輔助設備,用於硬件測試

android.permission.INJECT_EVENTS

允許一個程序截獲用戶事件如按鍵、觸摸、軌跡球等等到一個時間流

android.permission.INSTALL_LOCATION_PROVIDER

安裝定位提供

android.permission.INSTALL_PACKAGES

允許程序安裝應用

android.permission.INTERNAL_SYSTEM_WINDOW

允許程序打開內部窗口,不對第三方應用程序開放此權限

android.permission.INTERNET

訪問網絡連接,可能產生GPRS流量

android.permission.KILL_BACKGROUND_PROCESSES

允許程序調用killBackgroundProcesses(String).方法結束後台進程

android.permission.MANAGE_ACCOUNTS

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

android.permission.MANAGE_APP_TOKENS

管理創建、摧毀、Z軸順序,僅用於系統

android.permission.MTWEAK_USER

允許mTweak用戶訪問高級系統權限

android.permission.MTWEAK_FORUM

允許使用mTweak社區權限

android.permission.MASTER_CLEAR

允許程序執行軟格式化,刪除系統配置信息

android.permission.MODIFY_AUDIO_SETTINGS

修改聲音設置信息

android.permission.MODIFY_PHONE_STATE

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

android.permission.MOUNT_FORMAT_FILESYSTEMS

格式化可移動文件系統,比如格式化清空SD卡

android.permission.MOUNT_UNMOUNT_FILESYSTEMS

掛載、反掛載外部文件系統

android.permission.NFC

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

android.permission.PERSISTENT_ACTIVITY

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

android.permission.PROCESS_OUTGOING_CALLS

允許程序監視,修改或放棄播出電話

android.permission.READ_CALENDAR

允許程序讀取用戶的日程信息

android.permission.READ_CONTACTS

允許應用訪問聯系人通訊錄信息

android.permission.READ_FRAME_BUFFER

讀取幀緩存用於屏幕截圖

com.android.browser.permission.READ_HISTORY_BOOKMARKS

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

android.permission.READ_INPUT_STATE

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

android.permission.READ_LOGS

允許程序讀取底層系統日志文件

android.permission.READ_PHONE_STATE

訪問電話狀態

android.permission.READ_OWNER_DATA

允許程序讀取所有者數據

android.permission.READ_SMS

允許程序讀取短信息

android.permission.READ_SYNC_SETTINGS

讀取同步設置,讀取Google在線同步設置

android.permission.READ_SYNC_STATS

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

android.permission.REBOOT

允許程序重新啟動設備

android.permission.RECEIVE_BOOT_COMPLETED

允許程序開機自動運行

android.permission.RECEIVE_MMS

接收彩信

android.permission.RECEIVE_SMS

接收短信

android.permission.RECEIVE_WAP_PUSH

接收WAPPUSH信息

android.permission.RECORD_AUDIO

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

android.permission.REORDER_TASKS

允許程序改變Z軸排列任務

android.permission.RESTART_PACKAGES

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

android.permission.SEND_SMS

發送短信

android.permission.SET_ACTIVITY_WATCHER

設置Activity觀察器一般用於monkey測試

com.android.alarm.permission.SET_ALARM

設置鬧鈴提醒

android.permission.SET_ALWAYS_FINISH

設置程序在後台是否總是退出

android.permission.SET_ANIMATION_SCALE

設置全局動畫縮放

android.permission.SET_DEBUG_APP

設置調試程序,一般用於開發

android.permission.SET_ORIENTATION

設置屏幕方向為橫屏或標准方式顯示,不用於普通應用

android.permission.SET_PREFERRED_APPLICATIONS

設置應用的參數,已不再工作具體查看addPackageToPreferred(String)介紹

android.permission.SET_PROCESS_FOREGROUND

允許程序當前運行程序強行到前台

android.permission.SET_PROCESS_LIMIT

允許程序設置最大的進程數量的限制

android.permission.SET_TIME

設置系統時間

android.permission.SET_TIME_ZONE

設置系統時區

android.permission.SET_WALLPAPER

允許程序設置壁紙

android.permission.SET_WALLPAPER_HINTS

允許程序設置壁紙hits

android.permission.SIGNAL_PERSISTENT_PROCESSES

允許程序請求發送信號到所有顯示的進程中

android.permission.STATUS_BAR

允許程序打開、關閉或禁用狀態欄及圖標

android.permission.SUBSCRIBED_FEEDS_READ

允許一個程序訪問訂閱RSSFeed內容提供

android.permission.SUBSCRIBED_FEEDS_WRITE

寫入或修改訂閱內容的數據庫

android.permission.SYSTEM_ALERT_WINDOW

顯示系統窗口

android.permission.UPDATE_DEVICE_STATS

更新設備狀態

android.permission.USE_CREDENTIALS

允許程序請求驗證從AccountManager

android.permission.USE_SIP

允許程序使用SIP視頻服務

android.permission.VIBRATE

允許振動

android.permission.WAKE_LOCK

允許程序在手機屏幕關閉後後台進程仍然運行

android.permission.WRITE_APN_SETTINGS

寫入網絡GPRS接入點設置

android.permission.WRITE_CALENDAR

寫入日程,但不可讀取

android.permission.WRITE_CONTACTS

寫入聯系人,但不可讀取

android.permission.WRITE_EXTERNAL_STORAGE

允許程序寫入外部存儲,如SD卡上寫文件

android.permission.WRITE_GSERVICES

允許程序寫入GoogleMap服務數據

com.android.browser.permission.WRITE_HISTORY_BOOKMARKS

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

android.permission.WRITE_SECURE_SETTINGS

允許程序讀寫系統安全敏感的設置項

android.permission.WRITE_OWNER_DATA

允許一個程序寫入但不讀取所有者數據

android.permission.WRITE_SETTINGS

允許程序讀取或寫入系統設置

android.permission.WRITE_SMS

允許程序寫短信

android.permission.WRITE_SYNC_SETTINGS

允許程序寫入同步設置

 

 

 

 

 

 

 

 

 

 

 

 

 

 

文末小彩蛋:

 

Android模擬器Genymotion添加ARM程序運行環境的方法

 

搞開發也很多年了,還是第一次寫blog,給自己留一些記錄吧

自從用了Genymotion這個號稱快到極致的Android模擬器以後,很多時候調試程序都不想用真機了,SDK帶效率低下的官方模擬器因為效率太低也放棄了(據說可以通過配置來改進一直沒去嘗試過)

通過模擬器和hierarchyviewer可以很方便查看很多程序的界面布局,用於學習非常不錯,不過也一直有個問題,就是很多ARM的程序都沒法安裝(比如微信),畢竟是用的vbox虛擬機,相當於在x86環境下運行的,限定ARM的程序自然是無法安裝了,會提示"INSTALL_FAILED_CPU_ABI_INCOMPATIBLE"這個錯誤,無法向模擬器部署,如果直接安裝APK則會提示與您的設備不兼容。

那麼是不是就沒有辦法了呢?通過查找資料,發現了解決的方法,相信很多人也早就知道了,參考xda的這篇文章:

http://forum.xda-developers.com/showthread.php?t=2528952

使用方法也很簡單,就是將zip文件直接拖放到Genymotion的player窗口中即可自動安裝(安裝後要重啟一次)。

不過在實際操作的過程中,發現在部分模擬器環境下,將zip文件拖進去以後會報錯,提示"an error occurred while deploying a file"。經過實驗,用DDMS也沒法手動安裝zip包裡的東西(要復制到system下)。個人認為原因可能在於設備沒有在root的狀態下,但是Genymotion應該是已經root了的啊,最後解決方法是通過re管理器之類的文件管理工具,先獲得root的讀寫權限,然後將文件手動復制過去替換就行了(記得要重啟)。其實這方法也是xda的帖子裡面提到的。應該還有更簡單的方法,其實就是將zip包中的system/lib下的文件都復制到設備就行了。

這麼操作以後,就可以安裝各種ARM的程序了,微信也正常安裝,經測試使用也沒有什麼問題。

沒試過Genymotion的朋友推薦試試這個模擬器,很多時候,比真機要更快捷方便,性能也很棒

安兔兔測試,不能跑3D測試部分,不過分數還是不錯的...

 

Android應用權限

Android應用需要在AndroidManifest.xml添加某些權限。才能調用系統功能。如應用提供震動功能。必須在配置文件中加入震動權限。

 

屬性

說明

android.permission.ACCESS_CHECKIN_PROPERTIES

允許讀寫訪問"properties"表在checkin數據庫中,改值可以修改上傳

android.permission.ACCESS_COARSE_LOCATION

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

android.permission.ACCESS_FINE_LOCATION

通過GPS芯片接收衛星的定位信息,定位精度達10米以內

android.permission.ACCESS_LOCATION_EXTRA_COMMANDS

允許應用程序訪問額外的位置提供命令

android.permission.ACCESS_MOCK_LOCATION

獲取模擬定位信息,一般用於幫助開發者調試應用

android.permission.ACCESS_NETWORK_STATE

獲取網絡信息狀態,如當前的網絡連接是否有效

android.permission.ACCESS_SURFACE_FLINGER

Android平台上底層的圖形顯示支持,一般用於游戲或照相機預覽界面和底層模式的屏幕截圖

android.permission.ACCESS_WIFI_STATE

允許程序訪問Wi-Fi網絡狀態信息

android.permission.ACCOUNT_MANAGER

獲取賬戶驗證信息,主要為GMail賬戶信息,只有系統級進程才能訪問的權限

android.permission.AUTHENTICATE_ACCOUNTS

允許一個程序通過賬戶驗證方式訪問賬戶管理ACCOUNT_MANAGER相關信息

android.permission.ADD_SYSTEM_SERVICE

允許程序發布系統級服務

android.permission.BATTERY_STATS

允許程序更新手機電池統計信息

android.permission.BIND_APPWIDGET

允許一個程序告訴appWidget服務需要訪問小插件的數據庫,只有非常少的應用才用到此權限

android.permission.BIND_DEVICE_ADMIN

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

android.permission.BIND_INPUT_METHOD

請求InputMethodService服務,只有系統才能使用

android.permission.BIND_REMOTEVIEWS

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

android.permission.BIND_WALLPAPER

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

android.permission.BLUETOOTH

允許程序連接到已配對的藍牙設備

android.permission.BLUETOOTH_ADMIN

允許程序發現和配對藍牙設備

android.permission.BRICK

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

android.permission.BROADCAST_PACKAGE_REMOVED

允許程序廣播一個提示消息在一個應用程序包已經移除後

android.permission.BROADCAST_STICKY

允許一個程序廣播常用intents

android.permission.CALL_PHONE

允許一個程序初始化一個電話撥號不需通過撥號用戶界面需要用戶確認

android.permission.CALL_PRIVILEGED

允許一個程序撥打任何號碼,包含緊急號碼無需通過撥號用戶界面需要用戶確認

android.permission.CAMERA

請求訪問使用照相設備

android.permission.CHANGE_COMPONENT_ENABLED_STATE

改變組件是否啟用狀態

android.permission.CHANGE_CONFIGURATION

允許一個程序修改當前設置,如本地化

android.permission.CHANGE_NETWORK_STATE

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

android.permission.CHANGE_WIFI_MULTICAST_STATE

改變WiFi多播狀態

android.permission.CHANGE_WIFI_STATE

允許程序改變Wi-Fi連接狀態

android.permission.CLEAR_APP_CACHE

清除應用緩存

android.permission.CLEAR_APP_USER_DATA

清除應用的用戶數據

android.permission.CWJ_GROUP

允許CWJ賬戶組訪問底層信息

android.permission.CELL_PHONE_MASTER_EX

手機優化大師擴展權限

android.permission.CONTROL_LOCATION_UPDATES

允許獲得移動網絡定位信息改變

android.permission.DELETE_CACHE_FILES

允許程序刪除緩存文件

android.permission.DELETE_PACKAGES

允許程序刪除應用

android.permission.DEVICE_POWER

允許訪問底層電源管理

android.permission.DIAGNOSTIC

允許程序RW診斷資源

android.permission.DISABLE_KEYGUARD

允許程序禁用鍵盤鎖

android.permission.DUMP

允許程序返回狀態抓取信息從系統服務

android.permission.EXPAND_STATUS_BAR

允許一個程序擴展收縮在狀態欄,Android開發網提示應該是一個類似WindowsMobile中的托盤程序

android.permission.FACTORY_TEST

作為一個工廠測試程序,運行在root用戶

android.permission.FLASHLIGHT

訪問閃光燈,Android開發網提示HTCDream不包含閃光燈

android.permission.FORCE_BACK

允許程序強行一個後退操作是否在頂層activities

android.permission.FOTA_UPDATE

暫時不了解這是做什麼使用的,Android開發網分析可能是一個預留權限.

android.permission.GET_ACCOUNTS

訪問GMail賬戶列表

android.permission.GET_PACKAGE_SIZE

允許一個程序獲取任何package占用空間容量

android.permission.GET_TASKS

允許一個程序獲取信息有關當前或最近運行的任務,一個縮略的任務狀態,是否活動等等

android.permission.GLOBAL_SEARCH

允許程序使用全局搜索功能

android.permission.HARDWARE_TEST

訪問硬件輔助設備,用於硬件測試

android.permission.INJECT_EVENTS

允許一個程序截獲用戶事件如按鍵、觸摸、軌跡球等等到一個時間流

android.permission.INSTALL_LOCATION_PROVIDER

安裝定位提供

android.permission.INSTALL_PACKAGES

允許程序安裝應用

android.permission.INTERNAL_SYSTEM_WINDOW

允許程序打開內部窗口,不對第三方應用程序開放此權限

android.permission.INTERNET

訪問網絡連接,可能產生GPRS流量

android.permission.KILL_BACKGROUND_PROCESSES

允許程序調用killBackgroundProcesses(String).方法結束後台進程

android.permission.MANAGE_ACCOUNTS

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

android.permission.MANAGE_APP_TOKENS

管理創建、摧毀、Z軸順序,僅用於系統

android.permission.MTWEAK_USER

允許mTweak用戶訪問高級系統權限

android.permission.MTWEAK_FORUM

允許使用mTweak社區權限

android.permission.MASTER_CLEAR

允許程序執行軟格式化,刪除系統配置信息

android.permission.MODIFY_AUDIO_SETTINGS

修改聲音設置信息

android.permission.MODIFY_PHONE_STATE

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

android.permission.MOUNT_FORMAT_FILESYSTEMS

格式化可移動文件系統,比如格式化清空SD卡

android.permission.MOUNT_UNMOUNT_FILESYSTEMS

掛載、反掛載外部文件系統

android.permission.NFC

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

android.permission.PERSISTENT_ACTIVITY

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

android.permission.PROCESS_OUTGOING_CALLS

允許程序監視,修改或放棄播出電話

android.permission.READ_CALENDAR

允許程序讀取用戶的日程信息

android.permission.READ_CONTACTS

允許應用訪問聯系人通訊錄信息

android.permission.READ_FRAME_BUFFER

讀取幀緩存用於屏幕截圖

com.android.browser.permission.READ_HISTORY_BOOKMARKS

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

android.permission.READ_INPUT_STATE

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

android.permission.READ_LOGS

允許程序讀取底層系統日志文件

android.permission.READ_PHONE_STATE

訪問電話狀態

android.permission.READ_OWNER_DATA

允許程序讀取所有者數據

android.permission.READ_SMS

允許程序讀取短信息

android.permission.READ_SYNC_SETTINGS

讀取同步設置,讀取Google在線同步設置

android.permission.READ_SYNC_STATS

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

android.permission.REBOOT

允許程序重新啟動設備

android.permission.RECEIVE_BOOT_COMPLETED

允許程序開機自動運行

android.permission.RECEIVE_MMS

接收彩信

android.permission.RECEIVE_SMS

接收短信

android.permission.RECEIVE_WAP_PUSH

接收WAPPUSH信息

android.permission.RECORD_AUDIO

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

android.permission.REORDER_TASKS

允許程序改變Z軸排列任務

android.permission.RESTART_PACKAGES

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

android.permission.SEND_SMS

發送短信

android.permission.SET_ACTIVITY_WATCHER

設置Activity觀察器一般用於monkey測試

com.android.alarm.permission.SET_ALARM

設置鬧鈴提醒

android.permission.SET_ALWAYS_FINISH

設置程序在後台是否總是退出

android.permission.SET_ANIMATION_SCALE

設置全局動畫縮放

android.permission.SET_DEBUG_APP

設置調試程序,一般用於開發

android.permission.SET_ORIENTATION

設置屏幕方向為橫屏或標准方式顯示,不用於普通應用

android.permission.SET_PREFERRED_APPLICATIONS

設置應用的參數,已不再工作具體查看addPackageToPreferred(String)介紹

android.permission.SET_PROCESS_FOREGROUND

允許程序當前運行程序強行到前台

android.permission.SET_PROCESS_LIMIT

允許程序設置最大的進程數量的限制

android.permission.SET_TIME

設置系統時間

android.permission.SET_TIME_ZONE

設置系統時區

android.permission.SET_WALLPAPER

允許程序設置壁紙

android.permission.SET_WALLPAPER_HINTS

允許程序設置壁紙hits

android.permission.SIGNAL_PERSISTENT_PROCESSES

允許程序請求發送信號到所有顯示的進程中

android.permission.STATUS_BAR

允許程序打開、關閉或禁用狀態欄及圖標

android.permission.SUBSCRIBED_FEEDS_READ

允許一個程序訪問訂閱RSSFeed內容提供

android.permission.SUBSCRIBED_FEEDS_WRITE

寫入或修改訂閱內容的數據庫

android.permission.SYSTEM_ALERT_WINDOW

顯示系統窗口

android.permission.UPDATE_DEVICE_STATS

更新設備狀態

android.permission.USE_CREDENTIALS

允許程序請求驗證從AccountManager

android.permission.USE_SIP

允許程序使用SIP視頻服務

android.permission.VIBRATE

允許振動

android.permission.WAKE_LOCK

允許程序在手機屏幕關閉後後台進程仍然運行

android.permission.WRITE_APN_SETTINGS

寫入網絡GPRS接入點設置

android.permission.WRITE_CALENDAR

寫入日程,但不可讀取

android.permission.WRITE_CONTACTS

寫入聯系人,但不可讀取

android.permission.WRITE_EXTERNAL_STORAGE

允許程序寫入外部存儲,如SD卡上寫文件

android.permission.WRITE_GSERVICES

允許程序寫入GoogleMap服務數據

com.android.browser.permission.WRITE_HISTORY_BOOKMARKS

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

android.permission.WRITE_SECURE_SETTINGS

允許程序讀寫系統安全敏感的設置項

android.permission.WRITE_OWNER_DATA

允許一個程序寫入但不讀取所有者數據

android.permission.WRITE_SETTINGS

允許程序讀取或寫入系統設置

android.permission.WRITE_SMS

允許程序寫短信

android.permission.WRITE_SYNC_SETTINGS

允許程序寫入同步設置

 


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved