Как определить, являются ли Samsung Pay или Google Pay платежными приложениями по умолчанию?
Я ищу способ понять, использует ли пользователь Samsung Pay или Google Pay в качестве платежного приложения по умолчанию.
Читая документацию Tap and Pay, вы можете использовать
override suspend fun isDefaultWallet(packageName: String, fullClassName: String): Boolean {
val nfcManager = context.getSystemService(Context.NFC_SERVICE) as NfcManager
val emulation = CardEmulation.getInstance(nfcManager.defaultAdapter)
val componentName = ComponentName(packageName, fullClassName)
return emulation.isDefaultServiceForCategory(componentName, CardEmulation.CATEGORY_PAYMENT)
}
Для Google Pay:
- имя пакета:
com.google.android.apps.walletnfcrel
- название класса:
com.google.android.gms.tapandpay.hce.service.TpHceService
Каковы значения Samsung Pay?
2 ответа
Для Samsung Pay:
- имя пакета:
com.samsung.android.spayfw
- название класса:
com.samsung.android.spayfw.core.hce.SPayHCEService
Попробуйте это, это сработало для меня:
@RequiresApi(api = Build.VERSION_CODES.R)
private boolean isGoogleWalletDefaultPaymentMethod(){
NfcManager manager = (NfcManager) this.getSystemService(Context.NFC_SERVICE);
CardEmulation cardEmulation = CardEmulation.getInstance(manager.getDefaultAdapter());
if (cardEmulation.getDescriptionForPreferredPaymentService().equals("Google Pay"))
return true;
else
return false;
}
Плюс, если вы хотите узнать название пакета Samsung pay, это: com.samsung.android.spay