原文章发表在 https://www.jianshu.com/p/d7fa84f3073b 现在有了自己的静态博客,特意搬过来
微信支付来打赏,一直是个人开发者的心痛之地。
微信的很多Activity都是只能在它自己app的uid下启动,其他app调用不了,让用户主动截取二维码,然后扫描,实在是不明智之举,用户体验不太好。
一直在苦苦思索怎么有更简单的方法。
刚刚看到黑域使用的一种办法,比较具有可行性,就借鉴了过来[w再见][w再见]
原理是利用微信扫码快捷方式 (我怎么就想不到)
二维码从哪里来呢? 我的解决方案是,放到服务器上,来获取并保存下来
然后提用户打开微信的扫一扫
保存完了要发个广播通知一下,要不然微信、图库上面找不到那张二维码
然后就能愉快便捷地开启捐赠之旅了.
附源代码
private void gotoWeChat () { Intent intent = new Intent("com.tencent.mm.action.BIZSHORTCUT" ); intent.setPackage("com.tencent.mm" ); intent.putExtra("LauncherUI.From.Scaner.Shortcut" , true ); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); try { startActivity(intent); }catch (ActivityNotFoundException e){ Toast.makeText(this , "你好像没有安装微信" , Toast.LENGTH_SHORT).show(); } }
private void sendPictureStoredBroadcast (File file) { Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); Uri uri = Uri.fromFile(file); intent.setData(uri); sendBroadcast(intent); }