Saya membangun aplikasi Android yang entah bagaimana mengambil alih atau mengabaikan aplikasi driver Lyft. Pada dasarnya, setiap kali pengguna mengunduh aplikasi Android saya, entah bagaimana ia mengambil alih aplikasi Lyft-nya. Dia tidak akan mendapatkan permintaan perjalanan dari Lyft (bahkan di tengah waktu yang sangat sibuk). Lalu, ketika dia menghapus aplikasi saya, itu berfungsi dengan baik lagi. Dia segera mendapat wahana lagi. Itu adalah hal teraneh yang pernah saya lihat. Dan ini bukan hanya kebetulan, ketika dia pergi untuk membunuh aplikasinya, itu benar-benar menunjukkan logo aplikasi saya mengambil alih aplikasi driver Lyft.Perhatikan bagaimana aslinya memiliki logo Lyft. Kemudian, ketika aplikasi saya diinstal, itu memiliki logo saya untuk aplikasi Lyft (logo saya hanya logo Android default). Dia bahkan dapat membunuh aplikasi saya, dan aplikasi Lyft dan juga driver Uber-nya tidak berfungsi! Satu-satunya cara untuk memperbaikinya adalah dengan sepenuhnya menghapus aplikasi saya dan me-restart teleponnya. Kemudian, semuanya bekerja dengan sempurna. Salah satu elemen penting adalah saya selalu melacak lokasi. Saya hanya tidak begitu yakin dari mana harus memulai dengan bug ini, jadi ide apa pun sangat membantu. Terima kasih! Pengguna menggunakan Galaxy Note 10+ dengan Android 10. Tidak ada pengguna Android kami yang lain memberi tahu kami tentang masalah ini. Tampaknya menjadi kasus unik untuk ponsel ini.
Inilah semua manifes dan niat saya:
<?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()
atauPackageManager
. Lihat: Cara membuat / menonaktifkan intent-filter dengan cara yang dapat diprogram?Jawaban:
Saya yakin masalah Anda terkait dengan
name
elemen yang Anda tentukan diManifest.xml
, khususnya yang ada di bawahapplication
tag.Anda memiliki Anda didefinisikan sebagai:,
.parse.parse
yang agak aneh bagi saya. Melihat tautan ini dari platform parse, saya pikir itulah yang Anda nyatakan sebagai nama aplikasi Anda.Elemen nama ini, meskipun tampaknya tidak penting, sebenarnya adalah tempat aplikasi Anda menghasilkan Konteks tingkat Aplikasi, atau dalam hal ini, di mana eksternal
Intents
ditemukan.Sangat mungkin bahwa sistem tidak dapat membedakan mana yang harus ditarik dan karena itu menarik milik Anda lebih dari Lyft ketika itu bisa.
Untuk mengatasi ini, cukup deklarasikan kelas Anda sendiri yang memperluas
Application
kelas di suatu tempat di proyek Anda seperti ini:Kemudian perbarui Manifest Anda agar terlihat seperti ini:
Dan itu harus berfungsi dengan baik.
Jika Anda masih mengalami masalah, perbarui pertanyaan Anda dengan info lebih lanjut dan kami dapat mendiagnosisnya lebih lanjut.
sumber
${packageName}.something
sehingga juga tidak boleh menjadi alasannew MyApplication()
tidak pernah dipanggil, kecuali Anda menjalankan rom kustom yang kacau. Juga tidak ada tempat mereka memegang referensi statis ke aplikasi