<PreferenceScreen     android:title="@string/sync_settings"     android:summary="@string/sync_settings_summary"     android:key="sync_settings">     <intent android:action="android.settings.SYNC_SETTINGS" /></PreferenceScreen>在这段代码中载入了一个Intent 动作为android.sttings.SYNC_SETTINGS  根据此动作在AndroidManifest.xml 是无法找到的  请问要如何找到呢?
检索包里面的类会发现有一个类  与SecuritySettings.java  类对应 于是我在AndroidManifest.xml 中找到该类的配置:<activity android:name="SecuritySettings" android:label="@string/security_settings_title"        android:configChanges="orientation|keyboardHidden"        android:clearTaskOnLaunch="true"        >    <intent-filter><action android:name="android.intent.action.MAIN" /><action android:name="android.settings.SECURITY_SETTINGS" /><action android:name="android.settings.LOCATION_SOURCE_SETTINGS" /><action android:name="android.security.ADD_CREDENTIAL" /><action android:name="android.security.UNLOCK_CREDENTIAL_STORAGE" />                <category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.VOICE_LAUNCH" /><category android:name="com.android.settings.SHORTCUT" />      </intent-filter></activity>
可见  没有一个动作为android.settings.SYNC_SETTINGS 的设置  当我把动作改变时  然后重新编译成apk  这个Settings.apk  还是可以跑的  请问这是怎么回事
<PreferenceScreen     android:title="@string/sync_settings"     android:summary="@string/sync_settings_summary"     android:key="sync_settings">     <!-- 已改变android.settings.SYNC_SETTINGS  为 android.settings.SECURITY_SETTINGS -->     <intent android:action="android.settings.SECURITY_SETTINGS " /></PreferenceScreen>
我想问的问题是  它这么写得原理是什么(即我们怎么找到对应的Activity)?

解决方案 »

  1.   

    <intent android:action="android.settings.SYNC_SETTINGS" />
    这个只代表这个PreferenceScreen会发出一个系统的action,并不代表要在Settings应用中去接受这个action,查了一下源码,应该在app/provider/googlesubscribedfeedsprovider中会去处理这个action.有兴趣去看看这个目录下的AndroidManifast.xml
      

  2.   

    一个actiong是不能完全匹配activity的,还需要intent-filter中的内容