如何打开系统活动并点击按钮?

时间:2014-12-16 10:34:08

标签: android android-activity root

应用程序如何绿化,打开系统活动和单击按钮?活动为“App Info”,自动点击“强制停止”按钮。并且应用可以点击该活动中的按钮无根

打开活动“App Info”的代码如下:

    Intent intent = new Intent();
    intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
    Uri uri = Uri.fromParts("package", "com.package.sendinput", null);
    intent.setData(uri);
    startActivityForResult(intent, 0);

然后活动开始了。要点击那里的按钮,我试图执行adb shell输入tap 200 340(使用与我正在运行的应用程序相同的uid),但系统“杀死”。但是使用root可以单击按钮。

还有其他办法吗?

提前致谢

2 个答案:

答案 0 :(得分:3)

编辑 :(猜猜工作,因为我自己还没有这样做过)

Greenify自动化是作为Accessiblity服务运行完成的。简而言之,它检索窗口的当前内容并将AccessibilityEvent发送到指定的视图,如:touch,focus。

内容窗口被描述为AccessibilityWindowInfo,可以是TYPE_APPLICATIONTYPE_INPUT_METHODTYPE_SYSTEM

要将事件发送到窗口,它会使用AccessibilityManagerAccessibilityEvent发送到您在AccessibilityWindowInfo

中检索到的任何子视图

读: UiAutomation

Accessibility package

答案 1 :(得分:0)

您可以按照以下方式按包名启动特定应用程序的App info活动

public void showAppDetailsActivity(String packageName) {
    final int sdkVersion = Build.VERSION.SDK_INT;
    Intent intent = new Intent();

    if (sdkVersion >= Build.VERSION_CODES.GINGERBREAD) {
        intent.setAction(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
        intent.setData(Uri.parse("package:" + packageName));
    } else {

        final String appPkgName = "com.android.settings.ApplicationPkgName";

        intent.setAction(Intent.ACTION_VIEW);
        intent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails");
        intent.putExtra(appPkgName, packageName);
    }
    startActivity(intent);
}