Android 如何在TogleAccessibilityServicePreferenceFragment上执行片段注入?
我正在尝试在android上使用片段注入来调用我的应用程序可访问性服务的com.android.settings.accessibility.ToggleAccessibilityServicePreferenceFragment 代码如下:Android 如何在TogleAccessibilityServicePreferenceFragment上执行片段注入?,android,android-fragments,fragment,settings,accessibility,Android,Android Fragments,Fragment,Settings,Accessibility,我正在尝试在android上使用片段注入来调用我的应用程序可访问性服务的com.android.settings.accessibility.ToggleAccessibilityServicePreferenceFragment 代码如下: Intent i = new Intent(); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); i.setClassName("com.android.settings", "com.android.settin
Intent i = new Intent();
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
i.setClassName("com.android.settings", "com.android.settings.Settings");
ComponentName name = new ComponentName(getApplicationContext().getPackageName(), "MyAccessibilityService");
i.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT, "com.android.settings.accessibility.ToggleAccessibilityServicePreferenceFragment");
i.putExtra("mComponentName", name);
startActivity(intentTT);
但是在执行这些代码之后,LogCat显示了以下内容:
E/Settings:###(9542): onApplyThemeResource...
E/HtcPreferenceActivity(9542): context.getClassLoader(): dalvik.system.PathClassLoader[/system/app/Settings.apk]
E/HtcPreferenceActivity(9542): context.getPackageName(): com.android.settings
E/HtcPreferenceActivity(9542): context.getPackageCodePath(): /system/app/Settings.apk
E/HtcPreferenceActivity(9542): context.getPackageResourcePath(): /system/app/Settings.apk
E/HtcPreferenceActivity(9542): fragmentName: com.android.settings.accessibility.ToggleAccessibilityServicePreferenceFragment
E/AndroidRuntime(9542): FATAL EXCEPTION: main
E/AndroidRuntime(9542): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.settings/com.android.settings.Settings}: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.android.settings.accessibility.ToggleAccessibilityServicePreferenceFragment: make sure class name exists, is public, and has an empty constructor that is public
我尝试在我的应用程序中额外设置“nComponentName”来调用此片段,然后转到我应用程序的可访问性服务页面
以下是android源代码的一部分:
public class ToggleAccessibilityServicePreferenceFragment
extends ToggleFeaturePreferenceFragment implements DialogInterface.OnClickListener {
private static final int DIALOG_ID_ENABLE_WARNING = 1;
private static final int DIALOG_ID_DISABLE_WARNING = 2;
private final SettingsContentObserver mSettingsContentObserver =
new SettingsContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange, Uri uri) {
String settingValue = Settings.Secure.getString(getContentResolver(),
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
final boolean enabled = settingValue.contains(mComponentName.flattenToString());
mToggleSwitch.setCheckedInternal(enabled);
}
};
private ComponentName mComponentName;
private int mShownDialogId;
或者,您可以转到源代码的此页以查看:
是否有其他额外的需要设置/放置?我正在努力解决这个问题一个多月。但还是解决不了。有什么我错过的吗