当前位置: 移动技术网 > 移动技术>移动开发>Android > Android仿淘口令复制弹出框功能(简答版)

Android仿淘口令复制弹出框功能(简答版)

2019年07月24日  | 移动技术网移动技术  | 我要评论

上篇文章给大家介绍了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仿淘口令复制弹出框功能(简答版),希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网