Ich habe eine Android-App erstellt, die die Lyft-Treiber-App irgendwie übernimmt oder überschreibt. Grundsätzlich übernimmt eine Benutzerin, die meine Android-App heruntergeladen hat, irgendwie ihre Lyft-App. Sie wird keine Fahranfragen von Lyft erhalten (selbst mitten in einer sehr geschäftigen Zeit). Wenn sie dann meine App löscht, funktioniert sie wieder perfekt. Sie bekommt sofort wieder Fahrten. Es ist das Seltsamste, was ich je gesehen habe. Und das ist kein Zufall, wenn sie ihre Apps tötet, zeigt es buchstäblich, dass mein App-Logo die Lyft-Treiber-App übernimmt.Beachten Sie, wie ursprünglich das Lyft-Logo ist. Wenn meine App installiert ist, hat sie mein Logo für die Lyft-App (mein Logo ist nur das Standard-Android-Logo). Sie kann sogar meine App töten und ihre Lyft- und auch Uber-Treiber-App funktionieren nicht! Die einzige Möglichkeit, dies zu beheben, besteht darin, meine App vollständig zu deinstallieren und ihr Telefon neu zu starten. Dann funktioniert alles perfekt. Ein wichtiges Element ist, dass ich den Ort ständig verfolge. Ich bin mir einfach nicht sicher, wo ich überhaupt mit diesem Fehler anfangen soll, daher sind alle Ideen hilfreich. Vielen Dank! Der Benutzer verwendet ein Galaxy Note 10+ mit Android 10. Keiner unserer anderen Android-Benutzer hat uns über dieses Problem informiert. Es scheint ein einzigartiger Fall für dieses Telefon zu sein.
Hier sind alle meine Manifestationen und Absichten:
<?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()
oderPackageManager
. Siehe: So erstellen / deaktivieren Sie den Intent-Filter auf programmierbare Weise?Antworten:
Ich glaube, Ihr Problem hängt mit Ihrem definierten
name
Element in IhremManifest.xml
, insbesondere dem unter demapplication
Tag, zusammen.Sie haben Ihre definiert als:,
.parse.parse
was mir ziemlich seltsam erscheint. Wenn Sie sich diesen Link von der Analyseplattform aus ansehen, ist dies meiner Meinung nach der Name Ihrer App.Dieses Namenselement ist zwar unwichtig, aber tatsächlich generiert Ihre Anwendung den Kontext auf Anwendungsebene aus oder in diesem Fall wird das externe Element erkannt
Intents
.Es ist sehr wahrscheinlich, dass das System nicht unterscheiden kann, welches gezogen werden soll, und es zieht daher Ihr System über Lyft, wenn es kann.
Um dies zu beheben, deklarieren Sie einfach Ihre eigene Klasse, die die
Application
Klasse irgendwo in Ihrem Projekt wie folgt erweitert:Aktualisieren Sie dann einfach Ihr Manifest so, dass es so aussieht:
Und es sollte richtig funktionieren.
Wenn Sie immer noch Probleme haben, aktualisieren Sie Ihre Frage mit weiteren Informationen, und wir können sie weiter diagnostizieren.
quelle
${packageName}.something
sodass dies auch nicht der Grund sein solltenew MyApplication()
wird nie aufgerufen, es sei denn, Sie laufen auf einem durcheinandergebrachten benutzerdefinierten Rom. Auch nirgends dort, wo sie einen statischen Verweis auf die Anwendung enthalten