kotlin 我正在使用UPI应用程序,我想添加我的应用程序作为通过UPI付款的选项,与其他付款应用程序对话

7cjasjjr  于 2023-03-24  发布在  Kotlin
关注(0)|答案(1)|浏览(192)

我已经在我进行支付的活动中添加了意图过滤器。以下是详细信息:

<activity>
......
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="upi" />

</intent-filter>
</activity>

并且用于接收意图的活动代码是:

var intent = getIntent();

我需要我的应用程序来作为一个选择,而通过合众国际社付款。

e4eetjau

e4eetjau1#

要允许用户选择您的应用程序进行UPI支付,您可以创建一个包含支付应用程序列表的对话框,并在用户单击“使用UPI支付”按钮时启动它

val intent = Intent(Intent.ACTION_VIEW)
intent.data = Uri.parse("upi://pay?id=1234&amount=100")
val paymentApps = packageManager.queryIntentActivities(intent, 0)
val paymentAppNames = paymentApps.map { it.loadLabel(packageManager) }
val paymentAppIcons = paymentApps.map { it.loadIcon(packageManager) }

val adapter = PaymentAppListAdapter(paymentAppNames, paymentAppIcons)
val dialog = AlertDialog.Builder(this)
    .setTitle(R.string.pay_with_upi)
    .setAdapter(adapter) { _, which ->
        val chosenPaymentApp = paymentApps[which]
        val chosenPaymentAppName = chosenPaymentApp.loadLabel(packageManager)
        val chosenPaymentAppPackage = chosenPaymentApp.activityInfo.packageName
        intent.setPackage(chosenPaymentAppPackage)
        startActivity(intent)
    }
    .create()

buttonPay.setOnClickListener {
    dialog.show()
}

我还要确保为支付应用程序创建自定义适配器

相关问题