介绍一下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 权限管理 — 只防君子不防小人

随机推荐

  1. 如何修改android工程的包名
  2. android起始页面与导航页面
  3. Android变成setContentView()报错空指针异
  4. Android(安卓)Studio中buildToolsVersion
  5. android studio如何添加jni
  6. Visual Studio + android + opencv 跨平
  7. SharedPreference用法
  8. Android(安卓)学习之旅---Activity生命周
  9. Android最佳实践之触摸手势
  10. Android取得当前屏幕静态布局的截图