介绍一下android的各种权限。

代码如下:

Html代码
  1. < manifestxmlns:android manifestxmlns:android = "http://schemas.android.com/apk/res/android"
  2. package = "net.sunniwell.launcher"
  3. android android:versionCode ="1"android :versionName = "1.0.1" >


关于自定义权限,这是很好的例子,其他apk程序要想使用Launcher的功能必须添加这些权限,而这些权限都是在这里声明的。


这个是安装快捷方式的权限定义:

Html代码
  1. < permission
  2. android:name = "com.android.launcher.permission.INSTALL_SHORTCUT"
  3. android:permissionGroup = "android.permission-group.SYSTEM_TOOLS"
  4. android:protectionLevel = "normal"
  5. android:label = "@string/permlab_install_shortcut"
  6. android:description = "@string/permdesc_install_shortcut" />




这个是卸载快捷方式的权限定义:

Html代码
  1. < permission
  2. android:name = "com.android.launcher.permission.UNINSTALL_SHORTCUT"
  3. android:permissionGroup = "android.permission-group.SYSTEM_TOOLS"
  4. android:protectionLevel = "normal"
  5. android:label = "@string/permlab_uninstall_shortcut"
  6. android:description = "@string/permdesc_uninstall_shortcut" />



这个是读取launcher.db内容的权限定义:

Html代码
  1. < permission
  2. android:name = "net.sunniwell.launcher.permission.READ_SETTINGS"
  3. android:permissionGroup = "android.permission-group.SYSTEM_TOOLS"
  4. android:protectionLevel = "normal"
  5. android:label = "@string/permlab_read_settings"
  6. android:description = "@string/permdesc_read_settings" />



这个是修改和删除launcher.db内容的权限定义:

Html代码
  1. < permission
  2. android:name = "net.sunniwell.launcher.permission.WRITE_SETTINGS"
  3. android:permissionGroup = "android.permission-group.SYSTEM_TOOLS"
  4. android:protectionLevel = "normal"
  5. android:label = "@string/permlab_write_settings"
  6. android:description = "@string/permdesc_write_settings" />


这些是Launcher的权限声明,通过这些就能看出launcher的大概功能了:

打电话权限:

Html代码
  1. < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.CALL_PHONE" />


使用状态栏权限:

Html代码
  1. < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.EXPAND_STATUS_BAR" />


获取当前或最近运行的任务的信息的权限:

Html代码
  1. < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.GET_TASKS" />


读取通信录权限:

Html代码
  1. < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.READ_CONTACTS" />


设置壁纸权限:

Html代码
  1. < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.SET_WALLPAPER" />


允许程序设置壁纸hits的权限:

Html代码
  1. < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.SET_WALLPAPER_HINTS" />


使用震动功能权限:

Html代码
  1. < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.VIBRATE" />


修改删除launcher.db内容权限:

Html代码
  1. < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.WRITE_SETTINGS" />


绑定widget权限:

Html代码
  1. < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.BIND_APPWIDGET" />


读取launcher.db内容权限:

Html代码
  1. < uses-permissionandroid:name uses-permissionandroid:name = "net.sunniwell.launcher.permission.READ_SETTINGS" />


修改删除launcher.db内容权限:

Html代码
  1. < uses-permissionandroid:name uses-permissionandroid:name = "net.sunniwell.launcher.permission.WRITE_SETTINGS" />


读写外部存储设备权限:

Html代码
  1. < uses-permissionandroid:name uses-permissionandroid:name = "android.permission.WRITE_EXTERNAL_STORAGE" > </ uses-permission >

Html代码
  1. < application
  2. android:name = "LauncherApplication"
  3. activity应该运行的进程的名字:
  4. android:process = "android.process.acore"
  5. android:label = "@string/application_name"
  6. android:icon = "@drawable/swicon" >
  7. < activity
  8. android:name = "Launcher"
  9. 是否
  10. android:launchMode = "singleTask"
  11. android:clearTaskOnLaunch = "true"
  12. 这个activity是否在被杀死或者重启后能恢复原来的状态:
  13. android:stateNotNeeded = "true"
  14. android:theme = "@style/Theme"
  15. android:screenOrientation = "landscape"
  16. android:windowSoftInputMode = "stateUnspecified|adjustPan" >
  17. < intent-filter >
  18. < actionandroid:name actionandroid:name = "android.intent.action.MAIN" />
  19. < categoryandroid:name categoryandroid:name = "android.intent.category.LAUNCHER" />


桌面应用的标记:

Html代码
  1. < categoryandroid:name categoryandroid:name = "android.intent.category.HOME" />
  2. < categoryandroid:name categoryandroid:name = "android.intent.category.DEFAULT" />



自动化测试工具Monkey的标记,待研究…

Html代码
  1. < pre class = "html" name = "code" > < categoryandroid:name categoryandroid:name = "android.intent.category.MONKEY" />
  2. </ intent-filter >
  3. </ activity > </ pre >


选择壁纸的activity:

<activity

android:name="WallpaperChooser"

android:label="@string/pick_wallpaper"

android:icon="@drawable/ic_launcher_gallery" >


设置壁纸的intent-filter:

Html代码
  1. < intent-filter >
  2. < actionandroid:name actionandroid:name = "android.intent.action.SET_WALLPAPER" />
  3. < categoryandroid:name categoryandroid:name = "android.intent.category.DEFAULT" />
  4. </ intent-filter >


搜索的activity:

Html代码
  1. </ activity >
  2. <!--Enablesystem-defaultsearchmodeforanyactivityinHome-->
  3. < meta-data
  4. android:name = "android.app.default_searchable"
  5. android:value = "*" />


安装快捷方式的广播接收器:

Html代码
  1. <!--Intentreceivedusedtoinstallshortcutsfromotherapplications-->
  2. < receiver
  3. android:name = ".InstallShortcutReceiver"
  4. android:permission = "com.android.launcher.permission.INSTALL_SHORTCUT" >
  5. < intent-filter >
  6. < actionandroid:name actionandroid:name = "com.android.launcher.action.INSTALL_SHORTCUT" />
  7. </ intent-filter >
  8. </ receiver >
  9. <!--Intentreceivedusedtouninstallshortcutsfromotherapplications-->


卸载快捷方式的广播接收器:

Html代码
  1. < receiver
  2. android:name = ".UninstallShortcutReceiver"
  3. android:permission = "com.android.launcher.permission.UNINSTALL_SHORTCUT" >
  4. < intent-filter >
  5. < actionandroid:name actionandroid:name = "com.android.launcher.action.UNINSTALL_SHORTCUT" />
  6. </ intent-filter >
  7. </ receiver >


声明ContentProvider,用于对launcher.db操作:

Html代码
  1. <!--ThesettingsprovidercontainsHome'sdata,liketheworkspacefavorites-->
  2. < provider
  3. android:name = "SWLauncherProvider"
  4. android:authorities = "net.sunniwell.launcher.settings"
  5. android:writePermission = "net.sunniwell.launcher.permission.WRITE_SETTINGS"
  6. android:readPermission = "net.sunniwell.launcher.permission.READ_SETTINGS" />
  7. </ application >
  8. < uses-sdkandroid:minSdkVersion uses-sdkandroid:minSdkVersion = "4" />
  9. </ manifest >


说明:
1.
<manifest标签头部还应声明:
android:sharedUserId="android.uid.shared",作用是获得系统权限,但是这样的程序属性只能在build整个系统时放进去(就是系统软件)才起作用,手动安装是没有权限的。

更多相关文章

  1. android aosp 下载源代码
  2. android使用滚动视图
  3. android登录窗口――基础编
  4. Android内嵌H5(2)
  5. Android(安卓)Activity去除标题栏和状态栏
  6. 在Android中实现多线程同步
  7. Android(安卓)小发现:xml里定义的组件取出始终为null
  8. Android(安卓)Camera使用小结
  9. Android:WebView与Javascript交互(相互调用参数、传值)

随机推荐

  1. 从数据库中获取浏览器书签信息(Android Br
  2. Android Android使用JSON与服务器交互
  3. Android Settings中快速搜索流程
  4. Android keyevent 中的各个值
  5. android 学习五 设置应用程序全屏(没有状
  6. android实现文本信息复制,剪切板(Clipboard
  7. 修改 android版本 签名问题
  8. 解决This project contains Java compila
  9. Android getDecorView用途——屏幕截图
  10. android 之 selector