folgende Präferenz Header XML Gegeben:Fehlende Browser App verursacht Absturz für XML action.VIEW Intent
<?xml version="1.0" encoding="utf-8"?>
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android" >
<header
android:icon="@drawable/ic_public_white_36dp"
android:title="@string/menu_website" >
<intent
android:action="android.intent.action.VIEW"
android:data="http://www.example.com" />
</header>
</preference-headers>
Was wäre der beste Weg, um diesen Fehler zu mildern:
Fatal Exception: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=http://www.example.com }
Das Problem ist, dass Wenn auf dem Benutzergerät kein Browser installiert ist, stürzt der Benutzer mit diesem Fehler ab.
Darüber hinaus werden Amazon TV-Geräte auch abstürzen (da sie keinen Browser haben) mit ihrer eigenen Vielzahl von No-Browser-Ausnahme.
Normalerweise können Sie die Existenz eines Empfängers für diese Absicht prüfen oder einfach die Ausnahme abfangen. Mit XML ist es schwieriger. Ist die einzige Möglichkeit, dies zu verhindern, das Gerät in der PreferenceActivity
zu überprüfen, um diese Kopfzeile für "schlechte" Geräte zu entfernen?
Es ist eine nette Idee - wenn Sie auf die aktuelle Apps-Marktseite verlinken möchten. Ich nehme an, Sie haben eine Einstellungszeile "Diese App bewerten" erstellt. Es hilft jedoch nicht, wenn Sie nur einen Link zu einer Website bereitstellen. Es wird zunächst versucht, eine Verbindung zum Markt für die aktuelle App herzustellen (was völlig gegen die Fragestellung ist)! Die Antwort ist jedoch solide und mehr Funktionen als meine. Wenn Sie den aktuellen Code zu einem zusätzlichen Beispiel machen und ein weiteres Beispiel darüber machen, das die Frage genauer darstellt, werde ich diese Antwort gerne annehmen. – Knossos