应用程序如何绿化,打开系统活动和单击按钮?活动为“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可以单击按钮。
还有其他办法吗?
提前致谢
答案 0 :(得分:3)
编辑 :(猜猜工作,因为我自己还没有这样做过)
Greenify自动化是作为Accessiblity服务运行完成的。简而言之,它检索窗口的当前内容并将AccessibilityEvent
发送到指定的视图,如:touch,focus。
内容窗口被描述为AccessibilityWindowInfo
,可以是TYPE_APPLICATION
,TYPE_INPUT_METHOD
,TYPE_SYSTEM
。
要将事件发送到窗口,它会使用AccessibilityManager
将AccessibilityEvent
发送到您在AccessibilityWindowInfo
读: UiAutomation
答案 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);
}