获取所有活动/packagename/apps名称
我想获取所有可以处理UPI意图的活动的列表。 或者 我想获取Chooser意图中显示的所有活动的所有活动列表。
Google Pay,Amazon Pay,Paytm等
例如, tkxv5.jpg“ alt =”钱包应用程序映像>
void payUsingUpi() {
Uri uri = Uri.parse("upi://pay").buildUpon().build();
Intent upiPayIntent = new Intent();
upiPayIntent.setAction(Intent.ACTION_VIEW);
upiPayIntent.setData(uri);
Intent chooser = Intent.createChooser(upiPayIntent, "Pay with");
// check if intent resolves
if (chooser.resolveActivity(getPackageManager()) != null) {
activityLauncherForUpiPayements.launch(chooser);
} else {
Toast.makeText(this, "No UPI app found, please install one to continue", Toast.LENGTH_SHORT).show();
}
}
ActivityResultLauncher<Intent> activityLauncherForUpiPayements = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
// Toast.makeText(WalletActivity.this, "returned from activty", Toast.LENGTH_SHORT).show();
if (result.getResultCode() == Activity.RESULT_OK) {
if (result.getData() != null) {
String trxt = result.getData().getStringExtra("response");
//Log.d("UPI", "onActivityResult: " + trxt);
ArrayList<String> dataList = new ArrayList<>();
dataList.add(trxt);
upiPaymentDataOperation(dataList);
} else {
//Log.d("UPI", "onActivityResult: " + "Return data is null");
ArrayList<String> dataList = new ArrayList<>();
dataList.add("nothing");
upiPaymentDataOperation(dataList);
}
} else {
//Log.d("UPI", "onActivityResult: " + "Return data is null"); //when user simply back without payment
ArrayList<String> dataList = new ArrayList<>();
dataList.add("nothing");
upiPaymentDataOperation(dataList);
}
});
我尝试了以下片段,其他 stackoverflow答案
PackageManager packageManager = getPackageManager();
List<ResolveInfo> result = packageManager.queryIntentActivities(chooser, 0);
for (ResolveInfo resolveInfo : result) {
Toast.makeText(this, "" + resolveInfo.activityInfo.packageName, Toast.LENGTH_SHORT).show();
}
它给出了如下的输出:
Android android.system.ui.Chooser
,但我想获取Chooser弹出窗口中显示的所有活动或软件包名称或应用名称。
I want to get list of all the activities that can handle UPI intent.
OR
I want to get list of all activities that are displayed in Chooser intent for a upi intent.
e.g google pay, amazon pay, paytm etc
void payUsingUpi() {
Uri uri = Uri.parse("upi://pay").buildUpon().build();
Intent upiPayIntent = new Intent();
upiPayIntent.setAction(Intent.ACTION_VIEW);
upiPayIntent.setData(uri);
Intent chooser = Intent.createChooser(upiPayIntent, "Pay with");
// check if intent resolves
if (chooser.resolveActivity(getPackageManager()) != null) {
activityLauncherForUpiPayements.launch(chooser);
} else {
Toast.makeText(this, "No UPI app found, please install one to continue", Toast.LENGTH_SHORT).show();
}
}
ActivityResultLauncher<Intent> activityLauncherForUpiPayements = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
// Toast.makeText(WalletActivity.this, "returned from activty", Toast.LENGTH_SHORT).show();
if (result.getResultCode() == Activity.RESULT_OK) {
if (result.getData() != null) {
String trxt = result.getData().getStringExtra("response");
//Log.d("UPI", "onActivityResult: " + trxt);
ArrayList<String> dataList = new ArrayList<>();
dataList.add(trxt);
upiPaymentDataOperation(dataList);
} else {
//Log.d("UPI", "onActivityResult: " + "Return data is null");
ArrayList<String> dataList = new ArrayList<>();
dataList.add("nothing");
upiPaymentDataOperation(dataList);
}
} else {
//Log.d("UPI", "onActivityResult: " + "Return data is null"); //when user simply back without payment
ArrayList<String> dataList = new ArrayList<>();
dataList.add("nothing");
upiPaymentDataOperation(dataList);
}
});
I have tried below snippet provided in other Stackoverflow answer
PackageManager packageManager = getPackageManager();
List<ResolveInfo> result = packageManager.queryIntentActivities(chooser, 0);
for (ResolveInfo resolveInfo : result) {
Toast.makeText(this, "" + resolveInfo.activityInfo.packageName, Toast.LENGTH_SHORT).show();
}
it gave output like below:
android
android.system.ui.chooser
but I want to get all activities or package name or app name that were displayed in chooser pop-up.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论