Android仿淘口令复制弹出框功能(简答版)
程序员文章站
2023-11-29 17:21:16
上篇文章给大家介绍了android实现打开手机淘宝并自动识别淘宝口令弹出商品信息功能,接下来通过本文给大家分享android简单版仿淘口令复制弹出框功能,希望对大家有所帮助...
上篇文章给大家介绍了android实现打开手机淘宝并自动识别淘宝口令弹出商品信息功能,接下来通过本文给大家分享android简单版仿淘口令复制弹出框功能,希望对大家有所帮助!
使用android系统的粘贴板管理服务及clipboardmanager通过addprimaryclipchangedlistener添加listener来监听粘贴板的状态,很很简单的一个小功能~
1.首先创建一个service在后台运行:
intent intent = new intent(this,mainservice.class); startservice(intent);
另外同时在onresume()中获得粘贴板复制的内容,用于在app未启动或者service被关闭时重新启动app来弹出口令窗口
@override protected void onresume() { // todo auto-generated method stub super.onresume(); clipboardmanager mclipboardmanager = (clipboardmanager)getsystemservice(context.clipboard_service); log.e("copylistenerdemo", mclipboardmanager.getprimaryclip().getitemat(0).gettext().tostring()); }
2.在service管理粘贴板服务:
mclipboardmanager = (clipboardmanager)getsystemservice(context.clipboard_service); mclipboardmanager.addprimaryclipchangedlistener(mprimaryclipchangedlistener);
3.在onprimaryclipchanged()做想要的事情,例如弹出框:
使用windowmanager来显示弹出框
layoutinflater layoutinflater = (layoutinflater) getsystemservice(context.layout_inflater_service); final view floatview = layoutinflater.inflate(r.layout.floater, null); final windowmanager mwindowmanager = (windowmanager) getapplicationcontext().getsystemservice(context.window_service); layoutparams params = new windowmanager.layoutparams(); params.type = windowmanager.layoutparams.type_system_error;//系统内部错误提示,显示于所有内容之上 params.format = pixelformat.rgba_8888; params.flags = windowmanager.layoutparams.flag_not_touch_modal | windowmanager.layoutparams.flag_not_focusable; //当窗口可以获得焦点(没有设置flag_not_focusalbe选项)时,仍然将窗口范围之外的点设备事件(鼠标、触摸屏)发送给后面的窗口处理 params.width = windowmanager.layoutparams.match_parent; params.height = windowmanager.layoutparams.wrap_content; params.gravity = gravity.left | gravity.top; params.x = 0; params.y = 0; mwindowmanager.addview(floatview, params); objectanimator animatorshow = objectanimator.offloat(floatview, "alpha", 0.0f,1.0f); animatorshow.setduration(500); animatorshow.start(); objectanimator animatorhide = objectanimator.offloat(floatview, "alpha", 1.0f,0.0f); animatorhide.setduration(500); animatorhide.setstartdelay(3000); animatorhide.start();
点击弹出框,跳转activity
floatview.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { // todo auto-generated method stub toast.maketext(mainservice.this, "点击淘口令", toast.length_short).show(); intent intent = new intent(); intent.setflags(intent.flag_activity_new_task); intent.setclass(mainservice.this, xxactivity.class); startactivity(intent); } });
很简单的小功能,不过应用的实际过程应该还会出现一些待解决的小问题
好了,下面看下淘口令原理:clipboard笔记
clipboard是android提供的一个系统服务,它提供了一个全局的剪贴板,让文字、图片、数据,在多app间共享成为可能。
clipboard的基本使用,分为三步:
获得clipboardmanager:
clipboardmanager mclipboardmanager = mclipboardmanager = (clipboardmanager) getsystemservice(clipboard_service);
copy:
clipdata mclipdata; string text = "hello world"; mclipdata = clipdata.newplaintext("test", text); mclipboardmanager.setprimaryclip(mclipdata);
paste:
clipdata clipdata = mclipboardmanager.getprimaryclip(); clipdata.item item = clipdata.getitemat(0); string text = item.gettext().tostring();
搞定!
总结
以上所述是小编给大家介绍的android仿淘口令复制弹出框功能(简答版),希望对大家有所帮助
上一篇: C#中foreach语句深入研究