Ứng dụng Android của tôi đang ghi đè Ứng dụng Lyft?


13

Tôi đã xây dựng một ứng dụng Android bằng cách nào đó tiếp quản hoặc ghi đè ứng dụng trình điều khiển Lyft. Về cơ bản, bất cứ khi nào người dùng tải xuống ứng dụng Android của tôi, bằng cách nào đó nó sẽ chiếm ứng dụng Lyft của cô ấy. Cô sẽ không nhận được bất kỳ yêu cầu đi xe nào từ Lyft (ngay cả trong thời gian siêu bận rộn). Sau đó, khi cô ấy xóa ứng dụng của tôi, nó hoạt động hoàn hảo trở lại. Cô ấy ngay lập tức được cưỡi trở lại. Đó là điều kỳ lạ nhất tôi từng thấy. Và điều này không chỉ là ngẫu nhiên, khi cô ấy giết ứng dụng của mình, nó thực sự hiển thị logo ứng dụng của tôi tiếp quản ứng dụng trình điều khiển Lyft.Ảnh kèm theoChú ý ban đầu nó có logo Lyft như thế nào. Sau đó, khi ứng dụng của tôi được cài đặt, nó có logo của tôi cho ứng dụng Lyft (logo của tôi chỉ là logo Android mặc định). Cô ấy thậm chí có thể giết ứng dụng của tôi và ứng dụng tài xế Lyft và Uber của cô ấy không hoạt động! Cách duy nhất để khắc phục là gỡ cài đặt hoàn toàn ứng dụng của tôi và khởi động lại điện thoại của cô ấy. Sau đó, mọi thứ hoạt động hoàn hảo. Một yếu tố quan trọng là tôi luôn theo dõi vị trí. Tôi chỉ không thực sự chắc chắn bắt đầu từ đâu với lỗi này, vì vậy mọi ý tưởng đều hữu ích. Cảm ơn! Người dùng đang sử dụng Galaxy Note 10+ với Android 10. Không ai trong số những người dùng Android khác của chúng tôi đã nói với chúng tôi về vấn đề này. Nó dường như là một trường hợp duy nhất cho điện thoại này.

Dưới đây là tất cả các biểu hiện và ý định của tôi:

    <?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
Bắt đầu bằng cách đưa vào câu hỏi bảng kê khai của bạn và tất cả các bộ lọc ý định.
Morrison Chang

Được rồi, tôi đã thêm vào bảng kê khai.
Daniel Jones

1) Phiên bản nào của Android / thiết bị này xảy ra 2) Bạn có đang làm bất cứ điều gì đặc biệt theo chương trình với Context.registerReceiver()hoặc PackageManager. Xem: Làm thế nào để tạo / vô hiệu hóa bộ lọc ý định bằng cách lập trình?
Morrison Chang

9
Khách hàng của bạn có thể muốn bạn cắt tên của họ ra ...
Tenfour04

2
Một số gợi ý: 1. Yêu cầu cô ấy cài đặt Ứng dụng của bạn. Khởi động lại thiết bị và sau đó bắt đầu sử dụng Uber / Lyft mà không cần mở Ứng dụng của bạn và xem nó nếu nó hoạt động 2. Thiết bị có thể có một số loại phần mềm độc hại / vi rút. Yêu cầu cô ấy thực hiện khôi phục cài đặt gốc và sau đó thực hiện nhiệm vụ.
Sahil Manchanda ngày

Câu trả lời:


2

Tôi tin rằng vấn đề của bạn có liên quan đến nameyếu tố được xác định của bạn Manifest.xml, cụ thể là vấn đề bên dưới applicationthẻ.

Bạn có định nghĩa của bạn là : .parse.parse, có vẻ khá kỳ lạ đối với tôi. Nhìn vào liên kết này từ nền tảng phân tích cú pháp, tôi nghĩ đó là những gì bạn đang tuyên bố là tên ứng dụng của bạn.

Phần tử tên này, mặc dù có vẻ không quan trọng, nhưng thực sự là nơi ứng dụng của bạn đang tạo Bối cảnh cấp ứng dụng từ hoặc trong trường hợp này, nơi Intentsphát hiện ra bên ngoài .

Rất có khả năng hệ thống không thể phân biệt được cái nào cần kéo và do đó nó sẽ kéo bạn qua Lyft khi có thể.

Để giải quyết vấn đề này, chỉ cần khai báo lớp của riêng bạn mở rộng Applicationlớp ở đâu đó trong dự án của bạn như thế này:

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

Sau đó, chỉ cần cập nhật Bản kê khai của bạn để trông như thế này:

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

Và nó nên hoạt động đúng.

Nếu bạn vẫn gặp sự cố, hãy cập nhật câu hỏi của bạn với nhiều thông tin hơn và chúng tôi có thể chẩn đoán thêm.


Ví dụ ứng dụng android có thể và chỉ nên được tạo bởi hệ điều hành Android .. điều đó giả sử làm gì ở đó? Bên cạnh đó, bạn không bao giờ nên tham khảo cứng ứng dụng của mình .. nó gây nhầm lẫn cho hệ thống Android khi nó muốn xóa các ứng dụng không sử dụng khỏi thời gian chạy của chúng
TacB0sS

Ngoài ra, nếu tên ứng dụng bắt đầu bằng một cái gì đó, nó sẽ tìm kiếm lớp ứng dụng bên dưới ${packageName}.somethingvì vậy đó cũng không phải là lý do
TacB0sS

Dưới đây là một số tài liệu tham khảo nếu bạn tò mò về các mục đích khác nhau của phương pháp này. github.com/codepath/android_guides/wiki/ từ
PGMacDesign

Liên kết không mô tả cách tiếp cận của bạn .. Tôi sẽ đặt cược sự nghiệp của mình rằng new MyApplication()không bao giờ được gọi, trừ khi bạn chạy trên một rom tùy chỉnh lộn xộn. Cũng không có nơi nào họ giữ một tham chiếu tĩnh cho ứng dụng
TacB0sS
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.