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.Observe 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>
Context.registerReceiver()
ouPackageManager
. Veja: Como criar / desativar o filtro de intenção de maneira programável?Respostas:
Acredito que seu problema esteja relacionado ao seu
name
elemento definido no seuManifest.xml
, especificamente, o que está embaixo daapplication
tag.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
Intents
está 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
Application
classe em algum lugar do seu projeto como este:Em seguida, basta atualizar seu manifesto para ficar assim:
E deve funcionar corretamente.
Se você ainda estiver com problemas, atualize sua pergunta com mais informações e podemos diagnosticá-la ainda mais.
fonte
${packageName}.something
para que também não seja esse o motivo.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