Android Uygulamam Lyft Uygulamasını Geçersiz Kılıyor?


13

Bir şekilde Lyft sürücü uygulamasını devralan veya geçersiz kılan bir Android uygulaması oluşturdum. Temel olarak, bir kullanıcı Android uygulamamı indirdiğinde, bir şekilde Lyft uygulamasını devralır. Lyft'ten herhangi bir sürüş talebi almaz (süper yoğun bir zamanın ortasında bile). Sonra, benim app sildiğinde, tekrar mükemmel çalışıyor. Hemen tekrar biniyor. Gördüğüm en tuhaf şey. Ve bu sadece tesadüf değil, uygulamalarını öldürmeye gittiğinde, kelimenin tam anlamıyla Lyft sürücü uygulamasını devralan uygulama logomu gösteriyor.Fotoğraf ekliİlk olarak Lyft logosuna sahip olduğuna dikkat edin. Ardından, uygulamam yüklendiğinde, Lyft uygulaması için logom var (logom sadece varsayılan Android logosudur). Hatta benim app öldürebilir ve onun Lyft ve ayrıca Uber sürücü uygulaması çalışmıyor! Bunu düzeltmenin tek yolu, uygulamamı tamamen kaldırmak ve telefonunu yeniden başlatmaktır. Sonra her şey mükemmel çalışıyor. Önemli bir unsur, konumu her zaman takip etmem. Bu hatayla nereden başlayacağımdan gerçekten emin değilim, bu yüzden herhangi bir fikir yardımcı olur. Teşekkürler! Kullanıcı Android 10 ile Galaxy Note 10+ kullanıyor. Diğer Android kullanıcılarımızdan hiçbiri bize bu sorunu anlatmadı. Bu telefon için benzersiz bir durum gibi görünüyor.

İşte tüm tezahürlerim ve niyetlerim:

    <?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>

3
Manifestinizi ve tüm niyet filtrelerinizi soruya dahil ederek başlayın.
Morrison Chang

Tamam, bildirimi ekledim.
Daniel Jones

1) Android / cihazların hangi sürümleri bu oluyor 2) Context.registerReceiver()veya ile programlı olarak özel bir şey yapıyorsunuz PackageManager. Bkz: Programlanabilir yolla niyet filtresi nasıl oluşturulur / devre dışı bırakılır?
Morrison Chang

9
Müşteriniz isminizi çıkarmanızı tercih edebilir ...
Tenfour04

2
bazı öneriler: 1. Uygulamanızı yüklemesini isteyin. Cihazı yeniden başlatın ve Uygulamanızı açmadan Uber / Lyft kullanmaya başlayın ve çalışıp çalışmadığını görün 2. Cihazda bir tür kötü amaçlı yazılım / virüs olabilir. Fabrika ayarlarına sıfırlama yapmasını ve ardından görevi yerine getirmesini isteyin.
Sahil Manchanda

Yanıtlar:


2

Sorununuzun , özellikle etiketin altındaki öğedeki tanımlı nameöğenizle ilgili olduğuna inanıyorum .Manifest.xmlapplication

Sizinkini şu şekilde tanımladınız: .parse.parseBu bana çok garip geliyor. Ayrıştırma platformundan bu bağlantıya baktığımda, uygulamanızın adı olarak bildirdiğiniz şey budur.

Bu ad öğesi, önemsiz görünse de, aslında uygulamanızın Uygulama düzeyi Bağlamını oluşturduğu veya bu durumda Intentsdışsalın keşfedildiği yerdir .

Sistemin hangisini çekeceğini ayırt edememesi son derece olasıdır ve bu nedenle mümkün olduğunda sizinkini Lyft'in üzerine çekmektedir.

Bu sorunu çözmek için, projenizde sınıfı aşağıdaki gibi genişleten kendi sınıfınızı beyan etmeniz yeterlidir Application:

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();
    }
}

Ardından Manifest'inizi aşağıdaki gibi görünecek şekilde güncelleyin:

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

Ve düzgün çalışmalıdır.

Hala sorun yaşıyorsanız, sorunuzu daha fazla bilgi ile güncelleyin ve daha ayrıntılı tanı koyabiliriz.


Android uygulama örneği sadece android işletim sistemi tarafından oluşturulabilir ve oluşturulmalıdır .. Bu getinstance orada ne varsayalım? Ayrıca, uygulamalarınızı statik olarak asla referans almamalısınız .. kullanılmayan uygulamaları çalışma zamanlarından temizlemek istediğinde android sistemini karıştırır
TacB0sS

Ayrıca, uygulama adı bir .something ile başlıyorsa altında uygulama sınıfı arar, bu ${packageName}.somethingnedenle de olmamalıdır
TacB0sS

Bu yaklaşımın çeşitli amaçlarını merak ediyorsanız bazı referans materyalleri. github.com/codepath/android_guides/wiki/…
PGMacDesign

Bağlantı sizin yaklaşımınızı tarif new MyApplication()etmez .. Eğer berbat bir özel rom üzerinde koşmak sürece asla kariyer asla bahse girmeyecek bahis . Ayrıca hiçbir yerde orada uygulamaya statik bir referans tutun
TacB0sS
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.