介绍一下android的各种权限。 代码如下: Html代码 <manifestxmlns:androidmanifestxmlns:an
介绍一下android的各种权限。
代码如下:
Html代码- < manifestxmlns:android manifestxmlns:android = "http://schemas.android.com/apk/res/android"
- package = "net.sunniwell.launcher"
- android android:versionCode ="1"android :versionName = "1.0.1" >
关于自定义权限,这是很好的例子,其他apk程序要想使用Launcher的功能必须添加这些权限,而这些权限都是在这里声明的。
这个是安装快捷方式的权限定义:
- < permission
- android:name = "com.android.launcher.permission.INSTALL_SHORTCUT"
- android:permissionGroup = "android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel = "normal"
- android:label = "@string/permlab_install_shortcut"
- android:description = "@string/permdesc_install_shortcut" />
这个是卸载快捷方式的权限定义:
- < permission
- android:name = "com.android.launcher.permission.UNINSTALL_SHORTCUT"
- android:permissionGroup = "android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel = "normal"
- android:label = "@string/permlab_uninstall_shortcut"
- android:description = "@string/permdesc_uninstall_shortcut" />
这个是读取launcher.db内容的权限定义:
- < permission
- android:name = "net.sunniwell.launcher.permission.READ_SETTINGS"
- android:permissionGroup = "android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel = "normal"
- android:label = "@string/permlab_read_settings"
- android:description = "@string/permdesc_read_settings" />
这个是修改和删除launcher.db内容的权限定义:
- < permission
- android:name = "net.sunniwell.launcher.permission.WRITE_SETTINGS"
- android:permissionGroup = "android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel = "normal"
- android:label = "@string/permlab_write_settings"
- android:description = "@string/permdesc_write_settings" />
这些是Launcher的权限声明,通过这些就能看出launcher的大概功能了:
打电话权限:
Html代码- < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.CALL_PHONE" />
使用状态栏权限:
Html代码- < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.EXPAND_STATUS_BAR" />
获取当前或最近运行的任务的信息的权限:
Html代码- < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.GET_TASKS" />
读取通信录权限:
Html代码- < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.READ_CONTACTS" />
设置壁纸权限:
Html代码- < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.SET_WALLPAPER" />
允许程序设置壁纸hits的权限:
Html代码- < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.SET_WALLPAPER_HINTS" />
使用震动功能权限:
Html代码- < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.VIBRATE" />
修改删除launcher.db内容权限:
Html代码- < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.WRITE_SETTINGS" />
绑定widget权限:
Html代码- < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.BIND_APPWIDGET" />
读取launcher.db内容权限:
Html代码- < uses-permissionandroid:name uses-permissionandroid:name = "net.sunniwell.launcher.permission.READ_SETTINGS" />
修改删除launcher.db内容权限:
Html代码- < uses-permissionandroid:name uses-permissionandroid:name = "net.sunniwell.launcher.permission.WRITE_SETTINGS" />
读写外部存储设备权限:
Html代码- < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.WRITE_EXTERNAL_STORAGE" > </ uses-permission >
Html代码
- < application
- android:name = "LauncherApplication"
- activity应该运行的进程的名字:
- android:process = "android.process.acore"
- android:label = "@string/application_name"
- android:icon = "@drawable/swicon" >
- < activity
- android:name = "Launcher"
- 是否
- android:launchMode = "singleTask"
- android:clearTaskOnLaunch = "true"
- 这个activity是否在被杀死或者重启后能恢复原来的状态:
- android:stateNotNeeded = "true"
- android:theme = "@style/Theme"
- android:screenOrientation = "landscape"
- android:windowSoftInputMode = "stateUnspecified|adjustPan" >
- < intent-filter >
- < actionandroid:name actionandroid:name = "android.intent.action.MAIN" />
- < categoryandroid:name categoryandroid:name = "android.intent.category.LAUNCHER" />
桌面应用的标记:
Html代码- < categoryandroid:name categoryandroid:name = "android.intent.category.HOME" />
- < categoryandroid:name categoryandroid:name = "android.intent.category.DEFAULT" />
自动化测试工具Monkey的标记,待研究…
- < pre class = "html" name = "code" > < categoryandroid:name categoryandroid:name = "android.intent.category.MONKEY" />
- </ intent-filter >
- </ activity > </ pre >
选择壁纸的activity:
<activity
android:name="WallpaperChooser"
android:label="@string/pick_wallpaper"
android:icon="@drawable/ic_launcher_gallery" >
设置壁纸的intent-filter:
- < intent-filter >
- < actionandroid:name actionandroid:name = "android.intent.action.SET_WALLPAPER" />
- < categoryandroid:name categoryandroid:name = "android.intent.category.DEFAULT" />
- </ intent-filter >
搜索的activity:
Html代码- </ activity >
- <!--Enablesystem-defaultsearchmodeforanyactivityinHome-->
- < meta-data
- android:name = "android.app.default_searchable"
- android:value = "*" />
安装快捷方式的广播接收器:
Html代码- <!--Intentreceivedusedtoinstallshortcutsfromotherapplications-->
- < receiver
- android:name = ".InstallShortcutReceiver"
- android:permission = "com.android.launcher.permission.INSTALL_SHORTCUT" >
- < intent-filter >
- < actionandroid:name actionandroid:name = "com.android.launcher.action.INSTALL_SHORTCUT" />
- </ intent-filter >
- </ receiver >
- <!--Intentreceivedusedtouninstallshortcutsfromotherapplications-->
卸载快捷方式的广播接收器:
Html代码- < receiver
- android:name = ".UninstallShortcutReceiver"
- android:permission = "com.android.launcher.permission.UNINSTALL_SHORTCUT" >
- < intent-filter >
- < actionandroid:name actionandroid:name = "com.android.launcher.action.UNINSTALL_SHORTCUT" />
- </ intent-filter >
- </ receiver >
声明ContentProvider,用于对launcher.db操作:
Html代码- <!--ThesettingsprovidercontainsHome'sdata,liketheworkspacefavorites-->
- < provider
- android:name = "SWLauncherProvider"
- android:authorities = "net.sunniwell.launcher.settings"
- android:writePermission = "net.sunniwell.launcher.permission.WRITE_SETTINGS"
- android:readPermission = "net.sunniwell.launcher.permission.READ_SETTINGS" />
- </ application >
- < uses-sdkandroid:minSdkVersion uses-sdkandroid:minSdkVersion = "4" />
- </ manifest >
说明:
1.
<manifest标签头部还应声明:
android:sharedUserId="android.uid.shared",作用是获得系统权限,但是这样的程序属性只能在build整个系统时放进去(就是系统软件)才起作用,手动安装是没有权限的。