내 안드로이드 앱이 Lyft 앱을 재정의하고 있습니까?


13

어떻게 든 Lyft 드라이버 앱을 인계하거나 재정의하는 Android 앱을 만들었습니다. 기본적으로 사용자가 내 Android 앱을 다운로드 할 때마다 Lyft 앱을 대신 사용합니다. 그녀는 Lyft에서 (매우 바쁜 시간 중에도) 승차 요청을받지 않습니다. 그런 다음 앱을 삭제하면 다시 완벽하게 작동합니다. 그녀는 즉시 다시 타게된다. 내가 본 것 중에 가장 이상한 것입니다. 그리고 이것은 우연의 일치가 아니며 앱을 죽일 때 Lyft 드라이버 앱을 대신하는 내 앱 로고를 문자 그대로 보여줍니다.사진 첨부Lyft 로고가 원래 어떻게 표시되어 있는지 확인하십시오. 그런 다음 앱을 설치하면 Lyft 앱 로고가 표시됩니다 (내 로고는 기본 Android 로고 일뿐입니다). 그녀는 내 앱을 죽일 수도 있고 Lyft와 Uber 드라이버 앱도 작동하지 않습니다! 이 문제를 해결하는 유일한 방법은 앱을 완전히 제거하고 휴대 전화를 다시 시작하는 것입니다. 그런 다음 모든 것이 완벽하게 작동합니다. 중요한 요소 중 하나는 항상 위치를 추적한다는 것입니다. 나는이 버그로 어디서부터 시작 해야할지 확실하지 않으므로 아이디어가 도움이됩니다. 감사! 사용자는 Android 10에서 Galaxy Note 10 이상을 사용하고 있습니다. 다른 Android 사용자는이 문제에 대해 알려주지 않았습니다. 이 휴대 전화에는 특별한 경우 인 것 같습니다.

여기 내 모든 매니페스트와 의도가 있습니다.

    <?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
질문에 매니페스트와 모든 의도 필터를 포함시키는 것으로 시작하십시오.
모리슨 장

좋아, 나는 매니페스트를 추가했다.
다니엘 존스

1) 어떤 안드로이드 버전 / 장치는이 발생 2) 당신이 프로그래밍 아무것도 특별한을하고 있는가이다 Context.registerReceiver()PackageManager. 참조 : 프로그래밍 방식으로 / 비활성화 의도 필터를 만드는 방법?
모리슨 장

9
고객이 자신의 이름을 잘라내는 것을 선호 할 수도 있습니다.
Tenfour04

2
몇 가지 제안 : 1. 그녀에게 앱을 설치하도록 요청하십시오. 장치를 다시 시작한 다음 앱을 열지 않고 Uber / Lyft를 사용하여 시작하고 작동하는지 확인하십시오. 2. 장치에 맬웨어 / 바이러스가있을 수 있습니다. 공장 초기화를 요청한 다음 작업을 수행하도록 요청하십시오.
사힐 만찬 다

답변:


2

귀하의 문제는 의 태그에 정의 된 name요소 와 관련이 있다고 생각합니다 .Manifest.xmlapplication

당신은 다음과 같이 정의되어 .parse.parse있습니다. 구문 분석 플랫폼 에서이 링크 를 보면 앱 이름으로 선언 한 것 같습니다.

이 이름 요소는 중요하지 않은 것처럼 보일 수 있지만 실제로는 애플리케이션이 애플리케이션 레벨 컨텍스트를 생성하는 위치이거나이 경우 외부 Intents가 감지되는 위치 입니다.

시스템이 어느 것을 당겨야하는지 구별 할 수 없기 때문에 가능하면 Lyft 위로 끌어 당기는 것입니다.

이 문제를 해결하려면 다음 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();
    }
}

그런 다음 매니페스트를 다음과 같이 업데이트하십시오.

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

그리고 제대로 작동해야합니다.

여전히 문제가있는 경우 추가 정보로 질문을 업데이트하면 추가로 진단 할 수 있습니다.


안드로이드 앱 인스턴스는 안드로이드 OS에 의해서만 생성 될 수 있고 생성되어야합니다. 게다가 당신이해야 결코 정적으로 하드 참조 응용 프로그램 .. 그것은 자신의 런타임에서 사용하지 않는 앱을 삭제하고자하는 안드로이드 시스템 혼란
TacB0sS

또한 앱 이름이 .something으로 시작하는 경우 앱 클래스를 검색 ${packageName}.something하여 이유가되어서는 안됩니다.
TacB0sS

이 접근법의 다양한 목적에 대해 궁금한 경우 참고 자료가 있습니다. github.com/codepath/android_guides/wiki/…
PGMacDesign

링크는 당신의 접근 방식을 설명하지 않습니다. 난 new MyApplication()당신이 엉망이 된 사용자 정의 ROM을 실행하지 않는 한, 결코 호출되지 않은 내 경력에 베팅 할 것 입니다. 또한 애플리케이션에 대한 정적 참조를 보유하고있는 곳은 없습니다.
TacB0sS
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.