1

首先——

我知道那里有一个类似的问题得到了回答。但是答案对我没有帮助。

使用 UPI url 调用 PSP 应用程序

我的问题是一样的-

使用 UPI 网址如下

    String UPI = "upi://pay?pa=xsas@hdfcbank&pn=ABC+DEF&mc=qy67vt&tr=12121&tn=your+order+with+us&am=1.5&url=shopify.com";
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_SEND);
    intent.setData(Uri.parse(UPI));
    Intent chooser = Intent.createChooser(intent, "Pay with...");
    startActivityForResult(chooser, 1, null);

在我使用 setData 的那一刻,我停止获取可以与之共享的应用程序列表(列表为空)。如果我删除 setData,应用程序(短信、电子邮件等)的常规列表开始弹出,银行应用程序(接受 UPI,比如 ICICI/HDFC)不是其中之一。

这里可能出了什么问题?

4

2 回答 2

0

您可以从您的意图中省略该intent.setAction(Intent.ACTION_SEND);部分,因为这不是强制性的,并且不同的应用程序将处理不同的操作。

正如您在您提到的原始问题中看到的那样,没有setAction

于 2018-09-06T14:36:05.323 回答
0

替换这个:

String UPI = "upi://pay?pa=xsas@hdfcbank&pn=ABC+DEF&mc=qy67vt&tr=12121&tn=your+order+with+us&am=1.5&url=shopify.com";
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setData(Uri.parse(UPI));
Intent chooser = Intent.createChooser(intent, "Pay with...");
startActivityForResult(chooser, 1, null);

有了这个:

String UPI = "upi://pay?pa=xsas@hdfcbank&pn=ABC+DEF&mc=qy67vt&tr=12121&tn=your+order+with+us&am=1.5&url=shopify.com";
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW); // this line needs to be updated
intent.setData(Uri.parse(UPI));
Intent chooser = Intent.createChooser(intent, "Pay with...");
startActivityForResult(chooser, 1, null);

这是因为对于所有深度链接的 upi 应用程序来处理传入的意图,它们需要使用 View Action 调用。

于 2017-01-20T07:43:06.090 回答