java.net.SocketException: Permission denied (maybe missing INTERNET permission)
這是一個經典錯誤, Socket不能對外連接,錯誤不會被報出,調試的時候,能看到Exception, 這個Exception會有非常多變體。
Android默認不同意訪問網絡,所以,在AndroidManifest.xml中,須要進行例如以下配置:
<uses-permission android:name="android.permission.INTERNET" />
以加入網絡訪問權限。
*********************************************************************************************************************************
*********************************************************************************************************************************
Android權限在源碼編譯生成的文件里:out/target/common/R/android/Manifest.java,詳細內容例如以下:
public final class Manifest {public static final class permission {
//詳細代碼略去
}}
下面附Android 權限大全中英對比,以備使用,依據網友提醒可能不全,只是知道了方法,找的也就easy了
android.permission.ACCESS_CHECKIN_PROPERTIES
同意讀寫訪問”properties”表在checkin數據庫中,改值能夠改動上傳( Allows read/write access to the “properties” table in the checkin database, to change values that get uploaded)
android.permission.ACCESS_COARSE_LOCATION
同意一個程序訪問CellID或WiFi熱點來獲取粗略的位置(Allows an application to access coarse (e.g., Cell-ID, WiFi) location)
android.permission.ACCESS_FINE_LOCATION
同意一個程序訪問精良位置(如GPS) (Allows an application to access fine (e.g., GPS) location)
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
同意應用程序訪問額外的位置提供命令(Allows an application to access extra location provider commands)
android.permission.ACCESS_MOCK_LOCATION
同意程序創建模擬位置提供用於測試(Allows an application to create mock location providers for testing)
android.permission.ACCESS_NETWORK_STATE
同意程序訪問有關GSM網絡信息(Allows applications to access information about networks)
android.permission.ACCESS_SURFACE_FLINGER
同意程序使用SurfaceFlinger底層特性(Allows an application to use SurfaceFlinger’s low level features)
android.permission.ACCESS_WIFI_STATE
同意程序訪問Wi-Fi網絡狀態信息(Allows applications to access information about Wi-Fi networks)
android.permission.ADD_SYSTEM_SERVICE
同意程序公布系統級服務(Allows an application to publish system-level services).
android.permission.BATTERY_STATS
同意程序更新手機電池統計信息(Allows an application to update the collected battery statistics)
android.permission.BLUETOOTH
同意程序連接到已配對的藍牙設備(Allows applications to connect to paired bluetooth devices)
android.permission.BLUETOOTH_ADMIN
同意程序發現和配對藍牙設備(Allows applications to discover and pair bluetooth devices)
android.permission.BRICK
請求可以禁用設備(很危急)(Required to be able to disable the device (very *erous!).)
android.permission.BROADCAST_PACKAGE_REMOVED
同意程序廣播一個提示消息在一個應用程序包已經移除后(Allows an application to broadcast a notification that an application package has been removed)
android.permission.BROADCAST_STICKY
同意一個程序廣播經常使用intents(Allows an application to broadcast sticky intents)
android.permission.CALL_PHONE
同意一個程序初始化一個電話撥號不需通過撥號用戶界面須要用戶確認(Allows an application to initiate a phone call without going through the Dialer user interface for the user to confirm the call being placed.)
android.permission.CALL_PRIVILEGED
同意一個程序撥打不論什么號碼,包括緊急號碼無需通過撥號用戶界面須要用戶確認(Allows an application to call any phone number, including emergency numbers, without going through the Dialer user interface for the user to confirm the call being placed)
android.permission.CAMERA
請求訪問使用照相設備(Required to be able to access the camera device. )
android.permission.CHANGE_COMPONENT_ENABLED_STATE
同意一個程序是否改變一個組件或其它的啟用或禁用(Allows an application to change whether an application component (other than its own) is enabled or not. )
android.permission.CHANGE_CONFIGURATION
同意一個程序改動當前設置,如本地化(Allows an application to modify the current configuration, such as locale. )
android.permission.CHANGE_NETWORK_STATE
同意程序改變網絡連接狀態(Allows applications to change network connectivity state)
android.permission.CHANGE_WIFI_STATE
同意程序改變Wi-Fi連接狀態(Allows applications to change Wi-Fi connectivity state)
android.permission.CLEAR_APP_CACHE
同意一個程序清楚緩存從全部安裝的程序在設備中(Allows an application to clear the caches of all installed applications on the device. )
android.permission.CLEAR_APP_USER_DATA
同意一個程序清除用戶設置(Allows an application to clear user data)
android.permission.CONTROL_LOCATION_UPDATES
同意啟用禁止位置更新提示從無線模塊(Allows enabling/disabling location update notifications from the radio. )
android.permission.DELETE_CACHE_FILES
同意程序刪除緩存文件(Allows an application to delete cache files)
android.permission.DELETE_PACKAGES
同意一個程序刪除包(Allows an application to delete packages)
android.permission.DEVICE_POWER
同意訪問底層電源管理(Allows low-level access to power management)
android.permission.DIAGNOSTIC
同意程序RW診斷資源(Allows applications to RW to diagnostic resources. )
android.permission.DISABLE_KEYGUARD
同意程序禁用鍵盤鎖(Allows applications to disable the keyguard )
android.permission.DUMP
同意程序返回狀態抓取信息從系統服務(Allows an application to retrieve state dump information from system services.)
android.permission.EXPAND_STATUS_BAR
同意一個程序擴展收縮在狀態欄,android開發網提示應該是一個類似Windows Mobile中的托盤程序(Allows an application to expand or collapse the status bar. )
android.permission.FACTORY_TEST
作為一個工廠測試程序,執行在root用戶(Run as a manufacturer test application, running as the root user. )
android.permission.FLASHLIGHT
訪問閃光燈,android開發網提示HTC Dream不包括閃光燈(Allows access to the flashlight )
android.permission.FORCE_BACK
同意程序強行一個后退操作是否在頂層activities(Allows an application to force a BACK operation on whatever is the top activity. )
android.permission.FOTA_UPDATE
臨時不了解這是做什么使用的,android開發網分析可能是一個預留權限.
android.permission.GET_ACCOUNTS
訪問一個帳戶列表在Accounts Service中(Allows access to the list of accounts in the Accounts Service)
android.permission.GET_PACKAGE_SIZE
同意一個程序獲取不論什么package占用空間容量(Allows an application to find out the space used by any package. )
android.permission.GET_TASKS
同意一個程序獲取信息有關當前或近期執行的任務,一個縮略的任務狀態,是否活動等等(Allows an application to get information about the currently or recently running tasks: a thumbnail representation of the tasks, what activities are running in it, etc.)
android.permission.HARDWARE_TEST
同意訪問硬件(Allows access to hardware peripherals. )
android.permission.INJECT_EVENTS
同意一個程序截獲用戶事件如按鍵、觸摸、軌跡球等等到一個時間流,android 開發網提醒算是hook技術吧(Allows an application to inject user events (keys, touch, trackball) into the event stream and deliver them to ANY window.)
android.permission.INSTALL_PACKAGES
同意一個程序安裝packages(Allows an application to install packages. )
android.permission.INTERNAL_SYSTEM_WINDOW
同意打開窗體使用系統用戶界面(Allows an application to open windows that are for use by parts of the system user interface. )
android.permission.INTERNET
同意程序打開網絡套接字(Allows applications to open network sockets)
android.permission.MANAGE_APP_TOKENS
同意程序管理(創建、催后、 z- order默認向z軸推移)程序引用在窗體管理器中(Allows an application to manage (create, destroy, Z-order) application tokens in the window manager. )
android.permission.MASTER_CLEAR眼下還沒有明白的解釋,android開發網分析可能是清除一切數據,類似硬格機
android.permission.MODIFY_AUDIO_SETTINGS
同意程序改動全局音頻設置(Allows an application to modify global audio settings)
android.permission.MODIFY_PHONE_STATE
同意改動話機狀態,如電源,人機接口等(Allows modification of the telephony state – power on, mmi, etc. )
android.permission.MOUNT_UNMOUNT_FILESYSTEMS
同意掛載和反掛載文件系統可移動存儲(Allows mounting and unmounting file systems for removable storage. )
android.permission.PERSISTENT_ACTIVITY
同意一個程序設置他的activities顯示(Allow an application to make its activities persistent. )
android.permission.PROCESS_OUTGOING_CALLS
同意程序監視、改動有關播出電話(Allows an application to monitor, modify, or abort outgoing calls)
android.permission.READ_CALENDAR
同意程序讀取用戶日歷數據(Allows an application to read the user’s calendar data.)
android.permission.READ_CONTACTS
同意程序讀取用戶聯系人數據(Allows an application to read the user’s contacts data.)
android.permission.READ_FRAME_BUFFER
同意程序屏幕波或和很多其它常規的訪問幀緩沖數據(Allows an application to take screen shots and more generally get access to the frame buffer data)
android.permission.READ_INPUT_STATE
同意程序返回當前按鍵狀態(Allows an application to retrieve the current state of keys and switches. )
android.permission.READ_LOGS
同意程序讀取底層系統日志文件(Allows an application to read the low-level system log files. )
android.permission.READ_OWNER_DATA
同意程序讀取全部者數據(Allows an application to read the owner’s data)
android.permission.READ_SMS
同意程序讀取短信息(Allows an application to read SMS messages.)
android.permission.READ_SYNC_SETTINGS
同意程序讀取同步設置(Allows applications to read the sync settings)
android.permission.READ_SYNC_STATS
同意程序讀取同步狀態(Allows applications to read the sync stats)
android.permission.REBOOT
請求可以又一次啟動設備(Required to be able to reboot the device. )
android.permission.RECEIVE_BOOT_COMPLETED
同意一個程序接收到 ACTION_BOOT_COMPLETED廣播在系統完畢啟動(Allows an application to receive the ACTION_BOOT_COMPLETED that is broadcast after the system finishes booting. )
android.permission.RECEIVE_MMS
同意一個程序監控將收到MMS彩信,記錄或處理(Allows an application to monitor incoming MMS messages, to record or perform processing on them. )
android.permission.RECEIVE_SMS
同意程序監控一個將收到短信息,記錄或處理(Allows an application to monitor incoming SMS messages, to record or perform processing on them.)
android.permission.RECEIVE_WAP_PUSH
同意程序監控將收到WAP PUSH信息(Allows an application to monitor incoming WAP push messages. )
android.permission.RECORD_AUDIO
同意程序錄制音頻(Allows an application to record audio)
android.permission.REORDER_TASKS
同意程序改變Z軸排列任務(Allows an application to change the Z-order of tasks)
android.permission.RESTART_PACKAGES
同意程序又一次啟動其它程序(Allows an application to restart other applications)
android.permission.SEND_SMS
同意程序發送SMS短信(Allows an application to send SMS messages)
android.permission.SET_ACTIVITY_WATCHER
同意程序監控或控制activities已經啟動全局系統中Allows an application to watch and control how activities are started globally in the system.
android.permission.SET_ALWAYS_FINISH
同意程序控制是否活動間接完畢在處於后台時Allows an application to control whether activities are immediately finished when put in the background.
android.permission.SET_ANIMATION_SCALE
改動全局信息比例(Modify the global animation scaling factor.)
android.permission.SET_DEBUG_APP
配置一個程序用於調試(Configure an application for debugging.)
android.permission.SET_ORIENTATION
同意底層訪問設置屏幕方向和實際旋轉(Allows low-level access to setting the orientation (actually rotation) of the screen.)
android.permission.SET_PREFERRED_APPLICATIONS
同意一個程序改動列表參數PackageManager.addPackageToPreferred() 和PackageManager.removePackageFromPreferred()方法(Allows an application to modify the list of preferred applications with the PackageManager.addPackageToPreferred() and PackageManager.removePackageFromPreferred() methods.)
android.permission.SET_PROCESS_FOREGROUND
同意程序當前執行程序強行到前台(Allows an application to force any currently running process to be in the foreground.)
android.permission.SET_PROCESS_LIMIT
同意設置最大的執行進程數量(Allows an application to set the maximum number of (not needed) application processes that can be running. )
android.permission.SET_TIME_ZONE
同意程序設置時間區域(Allows applications to set the system time zone)
android.permission.SET_WALLPAPER
同意程序設置壁紙(Allows applications to set the wallpaper )
android.permission.SET_WALLPAPER_HINTS
同意程序設置壁紙hits(Allows applications to set the wallpaper hints)
android.permission.SIGNAL_PERSISTENT_PROCESSES
同意程序請求發送信號到全部顯示的進程中(Allow an application to request that a signal be sent to all persistent processes)
android.permission.STATUS_BAR
同意程序打開、關閉或禁用狀態欄及圖標Allows an application to open, close, or disable the status bar and its icons.
android.permission.SUBSCRIBED_FEEDS_READ
同意一個程序訪問訂閱RSS Feed內容提供(Allows an application to allow access the subscribed feeds ContentProvider. )
android.permission.SUBSCRIBED_FEEDS_WRITE
系統臨時保留改設置,android開發網覺得未來版本號會增加該功能。
android.permission.SYSTEM_ALERT_WINDOW
同意一個程序打開窗體使用 TYPE_SYSTEM_ALERT,顯示在其它全部程序的頂層(Allows an application to open windows using the type TYPE_SYSTEM_ALERT, shown on top of all other applications. )
android.permission.VIBRATE
同意訪問振動設備(Allows access to the vibrator)
android.permission.WAKE_LOCK
同意使用PowerManager的 WakeLocks保持進程在休眠時從屏幕消失( Allows using PowerManager WakeLocks to keep processor from sleeping or screen from dimming)
android.permission.WRITE_APN_SETTINGS
同意程序寫入API設置(Allows applications to write the apn settings)
android.permission.WRITE_CALENDAR
同意一個程序寫入但不讀取用戶日歷數據(Allows an application to write (but not read) the user’s calendar data. )
android.permission.WRITE_CONTACTS
同意程序寫入但不讀取用戶聯系人數據(Allows an application to write (but not read) the user’s contacts data. )
android.permission.WRITE_GSERVICES
同意程序改動Google服務地圖(Allows an application to modify the Google service map. )
android.permission.WRITE_OWNER_DATA
同意一個程序寫入但不讀取全部者數據(Allows an application to write (but not read) the owner’s data.)
android.permission.WRITE_SETTINGS
同意程序讀取或寫入系統設置(Allows an application to read or write the system settings. )
android.permission.WRITE_SMS
同意程序寫短信(Allows an application to write SMS messages)
android.permission.WRITE_SYNC_SETTINGS
同意程序寫入同步設置(Allows applications to write the sync settings)
android平台上的權限許可分得非常細,假設軟件無法正常運行時看看是不是缺少相關的permission聲明,終於我們還須要使用 android sign tools簽名生成的apk文件。