admin管理员组

文章数量:1623788

1.初始代码

        <activity android:name=".MainActivity">
            <intent-filter android:priority="1000">
                <action android:name="android.settings.MANAGE_APPLICATIONS_SETTINGS" />
            </intent-filter>
        </activity>

2.情况

项目中需要跳转到自己开发的apk中,该action已经有系统apk注册,原本是跳转到系统的apk界面进行处理,在不修改action的情况下,跳转到自己开发的apk,那么可以通过设置相同的action,同时提高action的优先级priority,这样就可以跳转到我们的apk中了。
优先级范围是【-1000,1000】,最高就是1000,默认为0。

3.问题

按照上述代码,依然无法跳转到我们开发的apk中,主要是xml中的配置不正确,还需要添加catagory进行匹配,否则无法打开我们的apk.

4.解决后的代码

        <activity android:name=".MainActivity">
            <intent-filter android:priority="1000">
                <action android:name="android.settings.MANAGE_APPLICATIONS_SETTINGS" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

5. 补充

android:priority

  1. priority 必须是整数,默认是0 , 范围是[-1000, 1000]
  2. 优先级的概念用于描述控件的 intent的filter的类型。
  3. 这个属性只对activity 和 receivers 是有意义的。
    3.1 隐式调用activity的情况下: 如果多个activity 满足响应 的条件, 系统只会触发 priority 高的那个activity。
    3.2 有序广播发出的情况下:如果多个receiver满足响应的条件,系统会优先触发priority搞的那个receiver。

本文标签: FilterIntentandroidPriority