Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 演示了如何使用GUI首选项屏幕创建模块_Android_Android Preferences_Xposed Framework - Fatal编程技术网

Android 演示了如何使用GUI首选项屏幕创建模块

Android 演示了如何使用GUI首选项屏幕创建模块,android,android-preferences,xposed-framework,Android,Android Preferences,Xposed Framework,我正在为Xposed创建一个模块,它可以实现我想要的功能,但我想为用户提供一个简单的首选项屏幕来输入两个整数值 我主要使用了可以找到的教程 本教程解释了必须创建一个活动来显示和管理首选项屏幕,ok。但是在那之后,没有任何关于如何将其链接到Xposed的解释,这样用户就可以在模块列表中单击模块的名称并访问首选项屏幕,而我只是得到一条消息“模块不提供用户界面” 我没有找到任何关于如何做到这一点的文档。有人能告诉我这一点吗?我想我已经找到了罪魁祸首(至少这为我解决了这个问题)。似乎是这样,而且刚刚开始

我正在为Xposed创建一个模块,它可以实现我想要的功能,但我想为用户提供一个简单的首选项屏幕来输入两个整数值

我主要使用了可以找到的教程

本教程解释了必须创建一个活动来显示和管理首选项屏幕,ok。但是在那之后,没有任何关于如何将其链接到Xposed的解释,这样用户就可以在模块列表中单击模块的名称并访问首选项屏幕,而我只是得到一条消息“模块不提供用户界面”


我没有找到任何关于如何做到这一点的文档。有人能告诉我这一点吗?

我想我已经找到了罪魁祸首(至少这为我解决了这个问题)。似乎是这样,而且刚刚开始。没有API。来源:Xposed源代码:

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    String packageName = (String) v.getTag();
    if (packageName == null)
        return;

    if (packageName.equals(NOT_ACTIVE_NOTE_TAG)) {
        Intent intent = new Intent(getActivity(), XposedInstallerActivity.class);
        intent.putExtra(XposedInstallerActivity.EXTRA_SECTION, XposedDropdownNavActivity.TAB_INSTALL);
        startActivity(intent);
        return;
    }

    Intent launchIntent = getSettingsIntent(packageName);
    if (launchIntent != null)
        startActivity(launchIntent);
    else
        Toast.makeText(getActivity(), getActivity().getString(R.string.module_no_ui), Toast.LENGTH_LONG).show();
}
因此,您只需要创建一个活动,但我认为这还不够:您还必须在Eclipse中将其设置为一个“启动器活动”,或者您可以通过添加
CATEGORY\u Launcher
intent过滤器手动完成

如果成功,当你将应用程序从eclipse推送到测试手机时,该应用程序将自动打开(就像其他任何应用程序一样)。如果发生这种情况,通常应用程序也应该在Xposed内部打开

下面是我放在里面的例子:

然后在主类中使用钩子中的prefs:

public class Main implements IXposedHookLoadPackage {
    public XSharedPreferences pref;

    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
        XSharedPreferences pref = new XSharedPreferences(Main.class.getPackage().getName(), "pref_mine"); // load the preferences using Xposed (necessary to be accessible from inside the hook, SharedPreferences() won't work)
        pref.makeWorldReadable();
        pref.reload();
        pref.getString("some_var", "default_value");
        ...
public class Main implements IXposedHookLoadPackage {
    public XSharedPreferences pref;

    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
        XSharedPreferences pref = new XSharedPreferences(Main.class.getPackage().getName(), "pref_mine"); // load the preferences using Xposed (necessary to be accessible from inside the hook, SharedPreferences() won't work)
        pref.makeWorldReadable();
        pref.reload();
        pref.getString("some_var", "default_value");
        ...