Android模拟器 SD卡的权限详解

做为现在最流行的移动设备,程序员们已经争先恐后加入到了Android开发的行列中。对于每一个开发者,程序的大量数据要和SD卡交互,这样才不会占用手机内存而提高程序的实用率。
 
但是在开发初期,新手对于Android模拟器上SD卡的操作不熟悉,被permission折磨的苦不堪言。在我前期开发过程中,找不到一种合理的操作SD权限的方式,导致模拟器无限重启去探索,浪费了大量时间。在这里列出来最有效的更改permission的方法供大家参考。
 
1.首先我们要创建一个SD卡镜像。
 
打开cmd,进入盘目录下(比如C盘),输入如下命令:mksdcard 1024M sdcard.img
输入命令后会在当前目录下生成一个sdcard.img文件,该文件就是Android模拟器的SD卡镜像文件。
1024M表示SD卡容量,也可以用K做单位,当然K,M必须大写。
目前Android支持8M-128G的SD卡。
 
2.关联Android模拟器
 
让你的模拟器找到你创建的镜像文件。
在Eclipse中找到,Eclipse->Windows->Android AVD manager
在sdcard选项后添加 C:/sdcard.img,创建镜像文件的目录。
然后点击creat avd,finish完成关联镜像的模拟器创建。
 
3.操作SD卡,及SD卡的权限。
 
当程序执行时,我们发现sdcard的执行权限是有问题的。
 
当然我们需要在当前程序的manifest.xml加入权限声明。
 
创建文件和删除文件的权限 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
写入数据的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
好,到目前为止,一个程序的SD卡权限已经设置完成。点击run,启动模拟器。
 
在Eclipse中会看到,
Android模拟器 <wbr>SD卡的权限详解。
这样就可以对sdcard写数据了。
 
 
 
总结,其实对SD卡权限操作,不是针对某个模拟器,而是针对某个应用程序。在这个应用程序下sdcard可写,并不代笔这个模拟器下运行的程序sdcard全可写。本人就是没搞清这个问题,造成了无限重启模拟器。。。
 
希望帮助大家。
 
最后附上manifest.xml中Android.permission列表。

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允许一个程序访问CellIDWiFi热点来获取粗略的位置(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 dangerous!).)

  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允许使用PowerManagerWakeLocks保持进程在休眠时从屏幕消失( 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

posted @ 2013-06-12 23:07  火腿骑士  阅读(1788)  评论(0编辑  收藏  举报