Replace Support Wallet Fragment on Fragment view 是 returns 错误的请求代码
Replace SupportWalletFragment on Fragment view id returns the wrong request code
我正在尝试实施 Android 在应用程序中付款。
Android 支付按钮必须位于从 MainActivity 替换的 Fragment 上。
WalletFragmentInitParams.Builder startParamsBuilder = WalletFragmentInitParams.newBuilder()
.setMaskedWalletRequest(maskedWalletRequest)
.setMaskedWalletRequestCode(REQUEST_CODE_MASKED_WALLET)
.setAccountName(accountName);
mWalletFragment.initialize(startParamsBuilder.build());
MainActivity mainActivity = getMainActivity();
mainActivity.getSupportFragmentManager().beginTransaction()
.replace(R.id.conteiner_AP, mWalletFragment)
.commit();
此 ID 容器(R.id.conteiner_AP)位于片段视图中
按照这些说明 (https://developers.google.com/android-pay/android/tutorial#obtain_credentials_and_a_client_id_for_your_app),我必须在 Activity 方法 onActivityResult 中获取掩码钱包 REQUEST_CODE_MASKED_WALLET,这是上面的指示。
但我通过奇怪的代码(328180 和 262644)获得了所需的数据,而不是我的 REQUEST_CODE_MASKED_WALLET
为什么会这样?有人可以帮助我吗?
我相信这是因为您需要在 Activity
onActivityResult
方法中调用 super.onActivityResult(...)
。
看看你得到的数字以及它们在二进制中的样子:
328180
--> 1010000000111110100
262644
--> 1000000000111110100
基本上,当 SupportWalletFragment
需要显示 UI 时,它会触发内部请求代码为 500 的 Intent
(注意:做 not 依赖这个数字在未来的版本中是相同的)。二进制的 500 是 111110100
,这是您看到的数字的常见后缀。
支持库将 activity 结果定向到片段的方式是使用片段 ID 作为请求代码高位的掩码。这就是为什么您在看到的两个请求代码的开头看到 101
或 100
的原因。然后,当您调用 super.onActivityResult()
时,支持库会提取片段 ID 并适当地定向结果。
如果添加这行代码,您应该会看到想要的结果。
我正在尝试实施 Android 在应用程序中付款。
Android 支付按钮必须位于从 MainActivity 替换的 Fragment 上。
WalletFragmentInitParams.Builder startParamsBuilder = WalletFragmentInitParams.newBuilder()
.setMaskedWalletRequest(maskedWalletRequest)
.setMaskedWalletRequestCode(REQUEST_CODE_MASKED_WALLET)
.setAccountName(accountName);
mWalletFragment.initialize(startParamsBuilder.build());
MainActivity mainActivity = getMainActivity();
mainActivity.getSupportFragmentManager().beginTransaction()
.replace(R.id.conteiner_AP, mWalletFragment)
.commit();
此 ID 容器(R.id.conteiner_AP)位于片段视图中
按照这些说明 (https://developers.google.com/android-pay/android/tutorial#obtain_credentials_and_a_client_id_for_your_app),我必须在 Activity 方法 onActivityResult 中获取掩码钱包 REQUEST_CODE_MASKED_WALLET,这是上面的指示。
但我通过奇怪的代码(328180 和 262644)获得了所需的数据,而不是我的 REQUEST_CODE_MASKED_WALLET
为什么会这样?有人可以帮助我吗?
我相信这是因为您需要在 Activity
onActivityResult
方法中调用 super.onActivityResult(...)
。
看看你得到的数字以及它们在二进制中的样子:
328180
--> 1010000000111110100
262644
--> 1000000000111110100
基本上,当 SupportWalletFragment
需要显示 UI 时,它会触发内部请求代码为 500 的 Intent
(注意:做 not 依赖这个数字在未来的版本中是相同的)。二进制的 500 是 111110100
,这是您看到的数字的常见后缀。
支持库将 activity 结果定向到片段的方式是使用片段 ID 作为请求代码高位的掩码。这就是为什么您在看到的两个请求代码的开头看到 101
或 100
的原因。然后,当您调用 super.onActivityResult()
时,支持库会提取片段 ID 并适当地定向结果。
如果添加这行代码,您应该会看到想要的结果。