我想在 Android 应用程序的 PreferenceScreen 中集成一个“通过比特币捐款”按钮。
有一些适用于 Android 的比特币客户端正在运行,比特币 wiki 定义了一个应该用于 BTC 支付的URI 方案。
我试过下面的代码
findPreference(getString(R.string.preference_donateBitcoin)).setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
String url = getString(R.string.pref_donateBitcoin_uri);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
return false;
}
});
没有在手机上安装 BTC。我尝试使用以下 URI 启动意图:bitcoin:19iSEgNkJnEUtNDuuTkkZrU44PVKYMVfhz?amount=1
期待 Android 告诉我没有安装处理程序。
相反,我得到了一个ActivityNotFoundException
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=bitcoin:19iSEgNkJnEUtNDuuTkkZrU44PVKYMVfhz?amount=1 }
我的问题是关于正确处理(阅读“最佳实践”)设备未知的 URI 方案。
- 如何检查某个 URI 方案是否至少可以由一个应用程序处理?(如果更多,我想是一个选择屏幕)
- 参考比特币但不参考任何特定客户,通过比特币支付时最好的意图是什么?未安装 BTC 客户端时如何处理?
[编辑]:这个问题是错误的,因为我搞砸了我的手机备份,并假定比特币钱包应用程序安装时没有安装。