Aplikasi Android saya Mengganti Aplikasi Lyft?

13

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.Foto terlampirPerhatikan 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>
Daniel Jones
sumber
3
Mulailah dengan memasukkan pertanyaan Anda manifes dan semua filter maksud.
Morrison Chang
Oke, saya menambahkan manifes.
Daniel Jones
1) Apa versi Android / perangkat ini terjadi 2) Apakah Anda melakukan sesuatu yang khusus secara programatik dengan Context.registerReceiver()atau PackageManager. Lihat: Cara membuat / menonaktifkan intent-filter dengan cara yang dapat diprogram?
Morrison Chang
9
Pelanggan Anda mungkin lebih suka bagi Anda untuk memotong nama mereka ...
Tenfour04
2
beberapa saran: 1. Minta dia untuk menginstal Aplikasi Anda. Mulai ulang perangkat dan kemudian mulai menggunakan Uber / Lyft tanpa membuka Aplikasi Anda dan lihat apakah itu berfungsi 2. Perangkat mungkin memiliki beberapa jenis malware / virus. Minta dia untuk melakukan reset pabrik dan kemudian melakukan tugasnya.
Sahil Manchanda

Jawaban:

2

Saya yakin masalah Anda terkait dengan nameelemen yang Anda tentukan di Manifest.xml, khususnya yang ada di bawah applicationtag.

Anda memiliki Anda didefinisikan sebagai:, .parse.parseyang 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 Intentsditemukan.

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 Applicationkelas di suatu tempat di proyek Anda seperti ini:

public class MyApplication extends Application {

    private static MyApplication sInstance;

    @Override
    public void onCreate() {
        super.onCreate();
        sInstance = this;
    }

    /**
     * Get an instance of the application. 
     *
     * @return {@link MyApplication}
     */
    public static synchronized MyApplication getInstance() {
        if (sInstance == null) {
            sInstance = new MyApplication();
        }
        return sInstance;
    }

    /**
     * Get context
     *
     * @return Context
     */
    public static synchronized Context getContext() {
        return getInstance().getApplicationContext();
    }
}

Kemudian perbarui Manifest Anda agar terlihat seperti ini:

 <application
        .
        android:name=".MyApplication"
        .
        .
        .>
...

Dan itu harus berfungsi dengan baik.

Jika Anda masih mengalami masalah, perbarui pertanyaan Anda dengan info lebih lanjut dan kami dapat mendiagnosisnya lebih lanjut.

PGMacDesign
sumber
Instansi aplikasi android hanya dapat dan seharusnya dibuat oleh android os .. apa yang harus dilakukan di sana? Selain itu, Anda seharusnya tidak pernah secara statis mereferensikan aplikasi Anda .. itu membingungkan sistem android ketika ingin menghapus aplikasi yang tidak digunakan dari runtime mereka
TacB0sS
Juga, jika nama aplikasi dimulai dengan .something itu mencari kelas aplikasi di bawah ${packageName}.somethingsehingga juga tidak boleh menjadi alasan
TacB0sS
Berikut adalah beberapa bahan referensi jika Anda penasaran dengan berbagai tujuan pendekatan ini. github.com/codepath/android_guides/wiki/…
PGMacDesign
Tautan ini tidak menjelaskan pendekatan Anda .. Saya akan bertaruh karir saya yang new MyApplication()tidak pernah dipanggil, kecuali Anda menjalankan rom kustom yang kacau. Juga tidak ada tempat mereka memegang referensi statis ke aplikasi
TacB0sS