Bir Android uygulamasının PreferenceScreen uygulamasında "Bitcoin Bağışla" düğmesini tümleştirmek istiyorum.Android'de bilinmeyen URI şemalarını işleme (Bitcoin örneği)
Android'in çevresinde çalışan birkaç Bitcoin istemcisi var ve Bitcoin wiki, BTC ödemeleri için kullanılması gereken URI scheme'u tanımlar.
telefonda yüklü bir BTC ezelî aşağıdaki kodu
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;
}
});
çalıştılar. Aşağıdaki URI ile niyetimi başlatmayı denedim: bitcoin:19iSEgNkJnEUtNDuuTkkZrU44PVKYMVfhz?amount=1
Android'in hiçbir işleyicinin yüklenmediğini söylemesi bekleniyor.
ActivityNotFoundException
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=bitcoin:19iSEgNkJnEUtNDuuTkkZrU44PVKYMVfhz?amount=1 }
cihaza bilinmeyen URI şemaları ("en iyi uygulamalar" okuyun) aldık.
- Belirli bir URI şemasının en az bir uygulama tarafından ele alınabileceğini nasıl kontrol ederim? (daha fazla seçenek varsa, bir seçim ekranı varsayalım)
- Bitcoin referansıyla, ancak herhangi bir müşteriye atıfta bulunulmadan, en iyi Bitcoin üzerinden ödeme yaparken nelere dikkat etmeli? BTC istemcisi kurulmadığında nasıl ele alınır?
[Düzenle]: telefon yedeklerimi bozduğumdan ve Bitcoin Cüzdan uygulamasının yüklenmediği varsayıldığından, sorunun nedeni yanlış.
Teşekkürler! Lütfen kafamı karıştırdığım için "geliştiriciyle iletişime geçin" bölümünü görmezden gelin ve BTC cüzdanının telefona yüklendiğini varsayalım (bunun yerine yalnızca tabletimde çalışır). Piyasadan yükledikten sonra bu URI şeması ile başarıyla açtım. Cevabınızın geri kalanı benim soruma uyuyor ve benim sorunumun çözümü olacak. –
@djechelon: ActivityNotFoundException, bir 'RuntimeException' standardıdır. 'StartActivity()' çağrınızı uygun bir 'try' /' catch' bloğuna sarmak işe yaramalıdır. http://stackoverflow.com/questions/8399065/how-to-handle-the-activitynotfoundexception – CommonsWare