J'ai créé une application Android qui prend en charge ou remplace l'application du pilote Lyft. Fondamentalement, chaque fois qu'un utilisateur télécharge mon application Android, il reprend en quelque sorte son application Lyft. Elle ne recevra aucune demande de trajet de Lyft (même au milieu d'une période très chargée). Puis, lorsqu'elle supprime mon application, cela fonctionne à nouveau parfaitement. Elle se remet immédiatement en route. C'est la chose la plus étrange que j'aie jamais vue. Et ce n'est pas seulement une coïncidence, quand elle va tuer ses applications, cela montre littéralement le logo de mon application qui reprend l'application du pilote Lyft.Remarquez comment il a à l'origine le logo Lyft. Ensuite, lorsque mon application est installée, elle a mon logo pour l'application Lyft (mon logo est juste le logo Android par défaut). Elle peut même tuer mon application, et son application de pilote Lyft et Uber ne fonctionne pas! La seule façon de le réparer est de désinstaller complètement mon application et de redémarrer son téléphone. Ensuite, tout fonctionne parfaitement. Un élément important est que je surveille toujours l'emplacement. Je ne sais pas vraiment par où commencer avec ce bogue, donc toutes les idées sont utiles. Merci! L'utilisateur utilise un Galaxy Note 10+ avec Android 10. Aucun de nos autres utilisateurs Android ne nous a parlé de ce problème. Cela semble être un cas unique pour ce téléphone.
Voici tous mes manifestes et mes intentions:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.danieljones.nomad_drivers">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
<application
android:requestLegacyExternalStorage="true"
android:name=".parse.Parse"
android:allowBackup="true"
android:fullBackupContent="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".checkIn.CheckInActivity"
android:label="@string/title_activity_check_in"/>
<activity android:name=".insurance.analysis_activity.ZendriveAnalysisActivity" />
<activity android:name=".fare.breakdowns.FareBreakdownActivity" />
<activity
android:name=".navigation.HomeNavigationActivity"
android:label="@string/title_activity_home_navigation"
android:screenOrientation="portrait"/>
<activity android:name=".welcome.LoginActivity" />
<activity android:name=".welcome.special_code.CodeActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".new_rides.ride_detail.NewRideDetailActivity" />
<activity android:name=".rides_lists.ride_detail.RideDetailActivity" />
<activity android:name=".personal_rides.ride_detail.PersonalRideDetailActivity" />
<activity android:name=".review_list.ReviewActivity"/>
<activity android:name=".user_profile.driver_card.EditProfileActivity" />
<activity android:name=".user_profile.edit_form.EditProfileFormActivity"/>
<receiver android:name=".insurance.zendrive.MyZendriveBroadcastReceiver" />
<activity android:name=".archived_rides.ride_detail.ArchivedRideDetailActivity" />
<service
android:name="com.parse.fcm.ParseFirebaseMessagingService"
android:permission="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<receiver
android:name=".push_notifications.ParseCustomBroadcastReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.parse.push.intent.RECEIVE" />
<action android:name="com.parse.push.intent.DELETE" />
<action android:name="com.parse.push.intent.OPEN" />
</intent-filter>
</receiver>
</application>
Context.registerReceiver()
ouPackageManager
. Voir: Comment créer / désactiver le filtre d'intention de manière programmable?Réponses:
Je crois que votre problème est lié à votre
name
élément défini dans votreManifest.xml
, en particulier, celui sous laapplication
balise.Vous avez défini le vôtre comme suit
.parse.parse
, ce qui me semble plutôt étrange. En regardant ce lien depuis la plate-forme d'analyse, je pense que c'est ce que vous déclarez comme le nom de votre application.Cet élément de nom, bien qu'il puisse sembler sans importance, est en fait l'endroit où votre application génère le contexte de niveau application à partir de, ou dans ce cas, où les externes
Intents
sont découverts.Il est fort probable que le système ne puisse pas distinguer lequel tirer et il tire donc le vôtre sur Lyft quand il le peut.
Pour résoudre ce problème, déclarez simplement votre propre classe qui étend la
Application
classe quelque part dans votre projet comme ceci:Mettez ensuite à jour votre manifeste pour qu'il ressemble à ceci:
Et cela devrait fonctionner correctement.
Si vous rencontrez toujours des problèmes, mettez à jour votre question avec plus d'informations et nous pourrons la diagnostiquer davantage.
la source
${packageName}.something
afin que cela ne soit pas non plus la raisonnew MyApplication()
n'est jamais appelée, sauf si vous utilisez une rom personnalisée foirée. Pas non plus où ils détiennent une référence statique à l'application