来自 Google Play 的意图重定向

Posted

技术标签:

【中文标题】来自 Google Play 的意图重定向【英文标题】:Intent Redirection from Google Play 【发布时间】:2021-07-20 14:08:07 【问题描述】:

由于“意图重定向”,我们的应用程序最近多次被拒绝。 “您的应用容易受到 Intent 重定向的影响。”

我们找不到此警告的位置。

你知道我们如何解决这个问题

请指导我们找到解决方案。

非常感谢您的帮助。

我们的代码如下:

<application
android:name=".application.AppController"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:requestLegacyExternalStorage="true"
android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true">
<activity android:name=".activities.IncomingCallActivity"
    android:theme="@style/Theme.MaterialComponents.Light.NoActionBar"
    android:screenOrientation="portrait"/>
<activity android:name=".activities.ReservedTimesWebViewActivity" />
<activity
    android:name=".activities.NodesLinksActivity"
    android:theme="@style/AppTheme.Dialog" />
<activity
    android:name=".activities.BookmarksActivity"
    android:screenOrientation="portrait" /> <!-- To fix crash on android 9+ -->
<activity
    android:name=".activities.SplashActivity"
    android:screenOrientation="portrait"
    android:theme="@style/SplashTheme">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <meta-data
        android:name="android.app.shortcuts"
        android:resource="@xml/shortcuts" />
</activity>
<activity
    android:name=".activities.MainActivity"
    android:launchMode="singleTop"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.PaymentCompletedActivity"
    android:exported="true"
    android:launchMode="singleTop"
    android:noHistory="true"
    android:parentActivityName=".activities.MainActivity"
    android:theme="@style/AppTheme.Dialog">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <action android:name="android.intent.action.RUN" />
        <action android:name="android.intent.action.EDIT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <category android:name="android.intent.category.DEFAULT" />
        <data
            android:host="payment"
            android:pathPattern="/.*"
            android:scheme="shafadoc" />
    </intent-filter>
</activity>
<activity
    android:name=".activities.SearchActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.LoginActivity"
    android:theme="@style/AppTheme.Dialog" />
<activity
    android:name=".activities.RegisterActivity"
    android:theme="@style/AppTheme.Dialog"
    android:windowSoftInputMode="adjustResize" />
<activity
    android:name=".activities.ProfileActivity"
    android:screenOrientation="portrait"
    android:theme="@style/AppTheme"
    android:windowSoftInputMode="adjustResize" />
<activity
    android:name=".activities.FilterActivity"
    android:theme="@style/AppTheme.Dialog" />
<activity
    android:name=".activities.NodeActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.ConfirmActivity"
    android:theme="@style/AppTheme.Dialog" />
<activity
    android:name=".activities.MapActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.ReservedTimesActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.AboutActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.HelpActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.ForgetPasswordActivity"
    android:theme="@style/AppTheme.Dialog"
    android:windowSoftInputMode="adjustResize" />
<activity
    android:name=".activities.ReservationActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.UserSelectionActivity"
    android:theme="@style/AppTheme.Dialog" />
<activity
    android:name=".activities.ClinicActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.AddCommentActivity"
    android:theme="@style/AppTheme.Dialog" />
<activity
    android:name=".activities.UpdateActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.ImageGalleryActivity"
    android:theme="@style/AppTheme.TransparentCompat" />
<activity
    android:name=".activities.MaintenanceActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.SettingsActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.SubUserActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.SupportMessageActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.DrugStoreActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.BlogPostsActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.AdActivity"
    android:theme="@style/AppTheme.TransparentCompat" />
<activity
    android:name=".activities.NewReservationActivity"
    android:screenOrientation="portrait" />
<activity
    android:name=".activities.EditInsuranceActivity"
    android:theme="@style/AppTheme.Dialog" />
<activity
    android:name=".activities.SelectCityActivity"
    android:theme="@style/AppTheme.Dialog" />
<activity
    android:name=".activities.DoctorsFilterActivity"
    android:theme="@style/AppTheme.Dialog" />
<activity
    android:name=".activities.ProgressActivity"
    android:theme="@style/AppTheme.Dialog" />
<activity android:name=".activities.CalendarTestActivity" />

【问题讨论】:

你最终解决了这个问题吗?目前遇到同样的问题 【参考方案1】:

如果不应该从其他应用程序/进程调用它们,您需要将exported="false" 添加到所有活动、服务和接收器。

【讨论】:

以上是关于来自 Google Play 的意图重定向的主要内容,如果未能解决你的问题,请参考以下文章

Play Framework - 使用参数重定向

应用意图问题 |您的应用包含意图重定向漏洞

应用易受 Intent 重定向问题的影响

在 Play 框架中重定向到同一控制器中的动作

如何解决android原生应用程序中的意图重定向?

Play Framework:验证错误重定向的最佳实践