微信支付來打賞端幼,一直是個人開發(fā)者的心痛之地。
微信的很多Activity都是只能在它自己app的uid下啟動浩习,其他app調(diào)用不了静暂,讓用戶主動截取二維碼,然后掃描谱秽,實在是不明智之舉洽蛀,用戶體驗不太好。
一直在苦苦思索怎么有更簡單的方法疟赊。
剛剛看到黑域使用的一種辦法郊供,比較具有可行性,就借鑒了過來[w再見][w再見]
原理是利用微信掃碼快捷方式(我怎么就想不到)
首先利用Dialog提示用戶
二維碼從哪里來呢? 我的解決方案是近哟,放到服務(wù)器上驮审,來獲取并保存下來
支付方式按鈕
然后提用戶打開微信的掃一掃
通過快捷方式的方式進(jìn)入掃一掃
保存完了要發(fā)個廣播通知一下,要不然微信吉执、圖庫上面找不到那張二維碼
發(fā)廣播的代碼
然后就能愉快便捷地開啟捐贈之旅了疯淫。[w調(diào)皮][w調(diào)皮]
附源代碼:
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);
}