私のAndroidアプリがLyftアプリを上書きしていますか?


13

Lyftドライバーアプリを何らかの形で継承または上書きするAndroidアプリを作成しました。基本的に、ユーザーが私のAndroidアプリをダウンロードすると、なんとかしてLyftアプリが引き継がれます。彼女はLyftからライド要求を受け取りません(非常に忙しい時間の途中であっても)。その後、彼女が私のアプリを削除すると、再び完全に機能します。彼女はすぐにまた乗ります。それは私が今まで見た中で最も奇妙なものです。そして、これは偶然の一致ではなく、彼女がアプリを強制終了しようとすると、文字通り、私のアプリのロゴがLyftドライバーアプリを引き継いでいます。写真添付元々はLyftのロゴが付いていることに注目してください。次に、私のアプリをインストールすると、Lyftアプリのロゴが表示されます(私のロゴはデフォルトのAndroidロゴです)。彼女は私のアプリを殺すこともでき、彼女のLyftとUberドライバーアプリも機能しません!それを修正する唯一の方法は、私のアプリを完全にアンインストールして彼女の電話を再起動することです。その後、すべてが完璧に動作します。重要な要素の1つは、常に場所を追跡することです。このバグのどこから始めればいいのかよくわからないので、どんなアイデアも役に立ちます。ありがとう!ユーザーは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)のAndroid /デバイスのバージョンは、この2を発生している何を)あなたがプログラム的に何も特別なをやっていますContext.registerReceiver()PackageManager。参照:プログラム可能な方法でインテントフィルターを作成/無効にする方法?
モリソンチャン

9
あなたの顧客はあなたに彼らの名前を
切り抜く

2
いくつかの提案:1.アプリをインストールするように彼女に依頼します。デバイスを再起動し、アプリを開かずにUber / Lyftの使用を開始し、それが機能するかどうかを確認します。2.デバイスに何らかのマルウェア/ウイルスが含まれている可能性があります。工場出荷時の状態にリセットしてからタスクを実行するように依頼します。
Sahil Manchanda

回答:


2

あなたの問題は、で定義されたname要素Manifest.xml、具体的にはapplicationタグの下の要素に関連していると思います。

あなたの定義は次のとおり.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"
        .
        .
        .>
...

そして、それは適切に機能するはずです。

それでも問題が解決しない場合は、詳細情報で質問を更新してください。さらに診断できます。


androidアプリインスタンスは、android osでのみ作成でき、作成する必要があります。さらに、アプリケーションを静的にハード参照しないでください。ランタイムから未使用のアプリをクリアしたい場合は、Androidシステムを混乱させます
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.