Android 系统 settings 中添加外部调用接口
MasterClearConfirm 是系统“settings”应用已存在的类,用于向用户确认清除全部数据。以下是添加可被外部调用的“清除手机全部数据”示例。
settings 应用中更改
-
AndroidManifest.xml
<activity android:name=".Settings$MasterClearConfirmActivity" android:label="@string/master_clear_final_button_text" android:icon="@drawable/ic_settings_about"> <intent-filter> <action android:name="com.android.settings.action.MASTER_CLEAR_CONFIRM" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.MasterClearConfirm"/> </activity>
action.MASTER_CLEAR_CONFIRM, 是自定义的动作,用于外部调用。
category.DEFAULT 是必须的,否则出错。
-
Settings.java
public static class MasterClearConfirmActivity extends SettingsActivity {}
-
SettingsGateway.java
ENTRY_FRAGMENTS 数组中加入:
MasterClearConfirm.class.getName(),
未加入会导致找不到 Fragment
外部应用调用
startActivity(new Intent(com.android.settings.action.MASTER_CLEAR_CONFIRM));