Xamarin Forms 服务在包为 com.google.android.gm 时获取 class android.widget.EditText 的文本

Xamarin Forms service to get the text of class android.widget.EditText when package is com.google.android.gm

我正在使用 示例来获取目标应用程序的包名称。我试图在后台创建一个服务,例如当用户打开 gmail 时,我可以从 class android.widget.EditText.

中获取文本

我想该服务必须处于活动状态,始终检查用户是否打开目标应用程序,然后当用户打开该目标应用程序时,我的服务必须获取 class EditText 的文本,如果领域是重点。

互联网上没有这样做的例子。 你能解释一下如何完成这项工作吗?

是否要获取其他应用程序的包名?您的示例获取您的应用程序的名称。那是不一样的。

如果要获取其他应用的名称,需要android.permission.GET_TASKS权限,所以可能找不到相关的例子。

As of LOLLIPOP, this method is no longer available to third party applications: the introduction of document-centric recents means it can leak personal information to the caller. For backwards compatibility, it will still return a small subset of its data: at least the caller's own tasks (though see getAppTasks() for the correct supported way to retrieve that information), and possibly some other tasks such as home that are known to not be sensitive.

请看这个帖子:,所以你找不到相关的例子。

如果想获取当前运行应用的名称,可以使用adb命令获取

adb shell dumpsys window | findstr mCurrentFocus

这是我打开 chrome 时的 运行 屏幕截图。