引见一下android的各种权限。 代码如下: Html代码 <manifestxmlns:androidmanifestxmlns:an
介绍一下android的各种权限。代码如下:Html代码manifestxmlns:androidmanifestxmlns:an?介绍一下android的
介绍一下android的各种权限。 代码如下: Html代码 <manifestxmlns:androidmanifestxmlns:an
?
介绍一下android的各种权限。
代码如下:
Html代码
<manifestxmlns:androidmanifestxmlns:android="http://schemas.android.com/apk/res/android"????????package="net.sunniwell.launcher"????????androidandroid:versionCode="1"android:versionName="1.0.1">??
关于自定义权限,这是很好的例子,其他apk程序要想使用Launcher的功能必须添加这些权限,而这些权限都是在这里声明的。
这个是安装快捷方式的权限定义:
Html代码
<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"/>??
这个是卸载快捷方式的权限定义:
Html代码
<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内容的权限定义:
Html代码
<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内容的权限定义:
Html代码
<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:nameuses-permissionandroid:name="android.permission.CALL_PHONE"/>??
使用状态栏权限:
?
Html代码
<uses-permissionandroid:nameuses-permissionandroid:name="android.permission.EXPAND_STATUS_BAR"/>??
获取当前或最近运行的任务的信息的权限:
?
Html代码
<uses-permissionandroid:nameuses-permissionandroid:name="android.permission.GET_TASKS"/>??
读取通信录权限:
?
Html代码
<uses-permissionandroid:nameuses-permissionandroid:name="android.permission.READ_CONTACTS"/>??
设置壁纸权限:
Html代码
<uses-permissionandroid:nameuses-permissionandroid:name="android.permission.SET_WALLPAPER"/>??
允许程序设置壁纸hits的权限:
Html代码
<uses-permissionandroid:nameuses-permissionandroid:name="android.permission.SET_WALLPAPER_HINTS"/>??
使用震动功能权限:
Html代码
<uses-permissionandroid:nameuses-permissionandroid:name="android.permission.VIBRATE"/>??
修改删除launcher.db内容权限:
Html代码
<uses-permissionandroid:nameuses-permissionandroid:name="android.permission.WRITE_SETTINGS"/>??
绑定widget权限:
Html代码
<uses-permissionandroid:nameuses-permissionandroid:name="android.permission.BIND_APPWIDGET"/>??
读取launcher.db内容权限:
Html代码
<uses-permissionandroid:nameuses-permissionandroid:name="net.sunniwell.launcher.permission.READ_SETTINGS"/>??
修改删除launcher.db内容权限:
Html代码
<uses-permissionandroid:nameuses-permissionandroid:name="net.sunniwell.launcher.permission.WRITE_SETTINGS"/>??
读写外部存储设备权限:
Html代码
<uses-permissionandroid:nameuses-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:nameactionandroid:name="android.intent.action.MAIN"/>????<categoryandroid:namecategoryandroid:name="android.intent.category.LAUNCHER"/>??
桌面应用的标记:
Html代码
<categoryandroid:namecategoryandroid:name="android.intent.category.HOME"/>????<categoryandroid:namecategoryandroid:name="android.intent.category.DEFAULT"/>??
自动化测试工具Monkey的标记,待研究…
Html代码
<pre?class="html"?name="code"><categoryandroid:namecategoryandroid: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:
?
Html代码
<intent-filter>????<actionandroid:nameactionandroid:name="android.intent.action.SET_WALLPAPER"/>????<categoryandroid:namecategoryandroid:name="android.intent.category.DEFAULT"/>????</intent-filter>??
搜索的activity:
Html代码
</activity>????<!--?Enable?system-default?search?mode?for?any?activity?in?Home?-->????<meta-data??????????????android:name="android.app.default_searchable"??????????????android:value="*"/>?????
安装快捷方式的广播接收器:
?
Html代码
<!--?Intent?received?used?to?install?shortcuts?from?other?applications-->??????<receiver??????????????android:name=".InstallShortcutReceiver"??????????????android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">????<intent-filter>????<actionandroid:nameactionandroid:name="com.android.launcher.action.INSTALL_SHORTCUT"/>????</intent-filter>????</receiver>???????<!--?Intent?received?used?to?uninstall?shortcuts?from?other?applications-->??
卸载快捷方式的广播接收器:
?
Html代码
<receiver??????????????android:name=".UninstallShortcutReceiver"??????????????android:permission="com.android.launcher.permission.UNINSTALL_SHORTCUT">????<intent-filter>????<actionandroid:nameactionandroid:name="com.android.launcher.action.UNINSTALL_SHORTCUT"/>????</intent-filter>????</receiver>??
声明ContentProvider,用于对launcher.db操作:
Html代码
<!--?The?settings?provider?contains?Home's?data,?like?the?workspacefavorites?-->????<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:minSdkVersionuses-sdkandroid:minSdkVersion="4"/>?????</manifest>??
说明:
1.
<manifest标签头部还应声明:
android:sharedUserId="android.uid.shared",作用是获得系统权限,但是这样的程序属性只能在build整个系统时放进去(就是系统软件)才起作用,手动安装是没有权限的。