Meu aplicativo Android está substituindo o aplicativo Lyft?

13

Criei um aplicativo Android que de alguma forma está assumindo ou substituindo o aplicativo de driver Lyft. Basicamente, sempre que um usuário faz o download do meu aplicativo Android, ele de alguma forma assume o seu aplicativo Lyft. Ela não receberá nenhum pedido de carona da Lyft (mesmo no meio de um período super ocupado). Então, quando ela excluir o meu aplicativo, ele funcionará perfeitamente novamente. Ela imediatamente pega carona novamente. É a coisa mais estranha que eu já vi. E isso não é apenas coincidência, quando ela vai matar seus aplicativos, literalmente mostra o logotipo do meu aplicativo assumindo o aplicativo do driver Lyft.Foto anexadaObserve como originalmente tem o logotipo da Lyft. Em seguida, quando meu aplicativo é instalado, ele possui meu logotipo para o aplicativo Lyft (meu logotipo é apenas o logotipo padrão do Android). Ela pode até matar meu aplicativo, e o aplicativo Lyft e também o driver do Uber não funcionam! A única maneira de corrigi-lo é desinstalar completamente meu aplicativo e reiniciar o telefone dela. Então, tudo funciona perfeitamente. Um elemento importante é que eu rastreio a localização o tempo todo. Não sei exatamente por onde começar com esse bug, portanto, quaisquer idéias são úteis. Obrigado! O usuário está usando um Galaxy Note 10+ com Android 10. Nenhum dos outros usuários do Android nos informou sobre esse problema. Parece ser um caso único para este telefone.

Aqui estão todos os meus manifestos e intenções:

    <?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
fonte
3
Comece incluindo na pergunta seu manifesto e todos os filtros de intenção.
Morrison Chang
Ok, eu adicionei o manifesto.
Daniel Jones
1) Quais versões do Android / dispositivos estão ocorrendo 2) Você está fazendo algo especial programaticamente com Context.registerReceiver()ou PackageManager. Veja: Como criar / desativar o filtro de intenção de maneira programável?
Morrison Chang
9
Seu cliente pode preferir que você
escolha
2
algumas sugestões: 1. Peça a ela para instalar seu aplicativo. Reinicie o dispositivo e comece a usar o Uber / Lyft sem abrir o aplicativo e veja se funciona 2. O dispositivo pode ter algum tipo de malware / vírus. Peça a ela para fazer uma redefinição de fábrica e, em seguida, execute a tarefa.
Sahil Manchanda 03/03

Respostas:

2

Acredito que seu problema esteja relacionado ao seu nameelemento definido no seu Manifest.xml, especificamente, o que está embaixo da applicationtag.

Você definiu o seu como .parse.parse:, o que me parece bastante estranho. Olhando para este link na plataforma de análise, acho que é isso que você está declarando como o nome do seu aplicativo.

Esse elemento de nome, embora possa parecer sem importância, é na verdade onde seu aplicativo está gerando o Contexto no nível do Aplicativo ou, nesse caso, onde o externo Intentsestá sendo descoberto.

É muito provável que o sistema não consiga distinguir qual deles puxar e, portanto, está puxando o seu sobre o Lyft quando puder.

Para resolver isso, basta declarar sua própria classe que estende a Applicationclasse em algum lugar do seu projeto como este:

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

Em seguida, basta atualizar seu manifesto para ficar assim:

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

E deve funcionar corretamente.

Se você ainda estiver com problemas, atualize sua pergunta com mais informações e podemos diagnosticá-la ainda mais.

PGMacDesign
fonte
A instância do aplicativo Android pode e deve ser criada apenas pelo sistema operacional Android. O que essa instância deve fazer lá? Além disso, você nunca deve fazer referência estaticamente rígida ao seu aplicativo .. ele confunde o sistema Android quando deseja limpar aplicativos não utilizados do tempo de execução
TacB0sS 10/03
Além disso, se o nome do aplicativo começar com algo., Ele pesquisará a classe de aplicativo abaixo, ${packageName}.somethingpara que também não seja esse o motivo.
TacB0sS
Aqui está algum material de referência, se você estiver curioso quanto aos vários objetivos dessa abordagem. github.com/codepath/android_guides/wiki/…
PGMacDesign
O link não descreve sua abordagem. Aposto que minha carreira new MyApplication()nunca é chamada, a menos que você execute uma ROM personalizada desarrumada. Também não onde eles mantêm uma referência estática para o aplicativo
TacB0sS