我想在用户打开任何应用程序时添加一个特定的活动(假设询问密码)。我该如何在android中做到这一点?
-例如:假设用户要打开摄像机,应首先将其重定向到该密码屏幕,用户将添加密码,如果正确,他将能够打开摄像机。
为此,您需要声明一个后台服务以在用户打开相机应用程序时捕获事件。后台服务将具有onReceive()方法。通过这种方法,您可以获取正在运行的应用程序进程的列表,并在摄像机位于前台的情况下进行匹配。如果用户单击摄像机,它将显示在正在运行的应用程序列表中。然后,您拦截该事件,并显示要向用户显示的对话框片段。
您可以实现一个自定义DialogFragment类,该类具有用于询问用户密码的必填字段。
在“自定义”对话框类中,您声明一个接口,如下所示:
public interface CustomAddressDialogListener{
public void onDialogPositiveClick(DialogFragment dialog, String enteredPassword);
public void onDialogNegativeClick(DialogFragment dialog);
}
自定义DialogFragment将具有其自己的布局,用于输入密码,您可以设置正向操作和负向操作。
积极行动:用户输入密码并点击提交。
否定措施:用户不想输入密码,然后单击“取消”。
您的上级活动可以实施此界面来捕获正面和负面点击。
@Override
public void onDialogPositiveClick(DialogFragment dialog, String enteredPassword) {
// Here you can check if the password is correct or wrong and take the action accordingly to open the camera.
}
在处理否定操作时,您可以使用杀死照相机进程杀死照相机进程:android.os.Process.sendSignal(pid,android.os.Process.SIGNAL_KILL); pid是相机应用程序的进程ID。当您获取正在运行的应用程序进程的信息时,可以获取pid。
有关详细信息,请参阅:http : //developer.android.com/reference/android/app/DialogFragment.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句