Android自动填充服务不会在某些应用程序上显示弹出窗口

Android自动填充服务不会在某些应用程序上显示弹出窗口,android,kotlin,service,autofill,Android,Kotlin,Service,Autofill,我目前正试图通过以下方式为我的应用程序实现自动填充服务。它在某些应用程序上工作,因此我可以在登录页面的编辑文本下看到弹出窗口,但在某些应用程序中它没有显示。我尝试过其他应用程序,如Bitwarden和1Password,它们能够使其正常工作 这是我的密码: val emailFields=arrayListOf() override-onFillRequest( 请求:FillRequest, 取消信号:取消信号, 回调:FillCallback ) { val context:List=re

我目前正试图通过以下方式为我的应用程序实现自动填充服务。它在某些应用程序上工作,因此我可以在登录页面的编辑文本下看到弹出窗口,但在某些应用程序中它没有显示。我尝试过其他应用程序,如Bitwarden和1Password,它们能够使其正常工作

这是我的密码:

val emailFields=arrayListOf()
override-onFillRequest(
请求:FillRequest,
取消信号:取消信号,
回调:FillCallback
) {
val context:List=request.fillContexts
val结构:AssistStructure=context[context.size-1]。结构
val emailNode=structure.getWindowNodeAt(0).rootViewNode
CheckForUserName字段(emailNode)
如果(emailFields.size>0){
val字段=电子邮件字段[0];
val responseBuilder=FillResponse.Builder()
val authIntent=Intent(这是AuthenticateActivity::class.java){
putExtra(“emailId”,field.autofillId)
}
val intentSender:intentSender=pendingent.getActivity(
这
1001,
作者意图,
PendingEvent.FLAG_取消_当前
)局长
val usernamePresentation=RemoteView(packageName,R.layout.autofill_layout)
val datasetBuilder=Dataset.Builder(usernamePresentation)
datasetBuilder.setAuthentication(intentSender)
datasetBuilder.setValue(field.autofillId!!,AutofillValue.forText(“电子邮件”);
responseBuilder.addDataset(datasetBuilder.build())
callback.onSuccess(responseBuilder.build())
}
}
private-fun-checkForUsernameField(emailNode:AssistStructure.ViewNode){
for(在0中输入i,直到emailNode.childCount){
if(emailNode.getChildAt(i).className!=null){
if(emailNode.getChildAt(i).className.contains(“EditText”)){
val viewId=emailNode.idEntry
如果(viewId!=null
&&(viewId.contains(“电子邮件”)
||viewId.contains(“用户名”)
||viewId.contains(“登录”)
||viewId.contains(“用户”)
||viewId.contains(“用户”)
||viewId.contains(“usr”)
||viewId.contains(“用户名”)
||viewId.contains(“标识符”)
||viewId.contains(“id”)){
emailFields.add(emailNode.getChildAt(i))
返回
}
}否则{
CheckForUserName字段(emailNode.getChildAt(i))
}
}
}
}
奇怪的是,即使弹出窗口没有显示,也会调用“callback.onSuccess(responseBuilder.build())”

谢谢你的帮助