diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index eb400685..c0346249 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -33,6 +33,14 @@
android:resizeable="true"
android:smallScreens="true" />
+
+
+
+
+
+
- try {
- if (isOfficialClientInstalled()) {
- startActivity(
- Intent(Intent.ACTION_VIEW).setData(
- Uri.parse(
- "com.baidu.tieba://unidispatch/frs?obj_locate=frs_top_diverse&obj_source=wise&obj_name=index&obj_param2=chrome&has_token=0&qd=scheme&refer=tieba.baidu.com&wise_sample_id=3000232_2&fr=bpush&kw=$forumName"
- )
- )
+ val intent =
+ Intent(Intent.ACTION_VIEW).setData(
+ Uri.parse(
+ "com.baidu.tieba://unidispatch/frs?obj_locate=frs_top_diverse&obj_source=wise&obj_name=index&obj_param2=chrome&has_token=0&qd=scheme&refer=tieba.baidu.com&wise_sample_id=3000232_2&fr=bpush&kw=$forumName"
)
+ )
+ val resolveInfos = packageManager.queryIntentActivities(
+ intent,
+ PackageManager.MATCH_DEFAULT_ONLY
+ ).filter { it.resolvePackageName != packageName }
+ try {
+ if (resolveInfos.isNotEmpty()) {
+ startActivity(intent)
} else {
toastShort(R.string.toast_official_client_not_install)
}
} catch (e: ActivityNotFoundException) {
toastShort(R.string.toast_official_client_not_install)
}
- finish()
}
}
} else {
diff --git a/app/src/main/java/com/huanchengfly/tieba/post/activities/ReplyActivity.kt b/app/src/main/java/com/huanchengfly/tieba/post/activities/ReplyActivity.kt
index 8ed37bb2..ecdf74e9 100644
--- a/app/src/main/java/com/huanchengfly/tieba/post/activities/ReplyActivity.kt
+++ b/app/src/main/java/com/huanchengfly/tieba/post/activities/ReplyActivity.kt
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import android.content.ActivityNotFoundException
import android.content.Intent
import android.content.Intent.ACTION_VIEW
+import android.content.pm.PackageManager
import android.graphics.Color
import android.net.Uri
import android.os.Bundle
@@ -132,9 +133,13 @@ class ReplyActivity : BaseActivity(), View.OnClickListener,
}
setNeutralButton(R.string.btn_continue_reply, null)
setPositiveButton(R.string.button_official_client_reply) { _, _ ->
+ val intent = Intent(ACTION_VIEW).setData(getDispatchUri())
+ val resolveInfos =
+ packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
+ .filter { it.resolvePackageName != packageName }
try {
- if (isOfficialClientInstalled()) {
- startActivity(Intent(ACTION_VIEW).setData(getDispatchUri()))
+ if (resolveInfos.isNotEmpty()) {
+ startActivity(intent)
} else {
toastShort(R.string.toast_official_client_not_install)
}