मेरा एंड्रॉइड ऐप Lyft ऐप को ओवरराइड कर रहा है?


13

मैंने एक एंड्रॉइड ऐप बनाया है जो किसी तरह Lyft ड्राइवर ऐप को ओवरराइड या ओवरराइड कर रहा है। असल में, जब भी किसी उपयोगकर्ता के पास मेरा एंड्रॉइड ऐप डाउनलोड होता है, तो वह किसी तरह से अपने Lyft ऐप को संभाल लेता है। उसे Lyft से कोई सवारी अनुरोध नहीं मिलेगा (यहां तक ​​कि एक सुपर व्यस्त समय के बीच में भी)। फिर, जब वह मेरा ऐप हटाती है, तो वह फिर से पूरी तरह से काम करती है। वह तुरंत फिर से सवारी करती है। यह सबसे अजीब चीज है जिसे मैंने कभी देखा है। और यह सिर्फ संयोग नहीं है, जब वह अपने ऐप्स को मारने जाती है, तो यह सचमुच मेरे ऐप के लोगो को Lyft ड्राइवर ऐप पर ले जाती है।चित्र संलग्नध्यान दें कि यह मूल रूप से Lyft लोगो है। फिर, जब मेरा ऐप इंस्टॉल हो जाता है, तो मेरे पास Lyft ऐप के लिए मेरा लोगो होता है (मेरा लोगो बस डिफ़ॉल्ट एंड्रॉइड लोगो है)। वह मेरे ऐप को भी मार सकता है, और उसके Lyft और Uber ड्राइवर ऐप को भी काम नहीं देता! इसे ठीक करने का एकमात्र तरीका है कि मैं अपने ऐप को पूरी तरह से अनइंस्टॉल कर दूं और उसके फोन को रिस्टार्ट कर दूं। फिर, सब कुछ पूरी तरह से काम करता है। एक महत्वपूर्ण तत्व यह है कि मैं हर समय स्थान को ट्रैक करूं। मैं वास्तव में निश्चित नहीं हूं कि इस बग की शुरुआत कहां से हो, इसलिए कोई भी विचार मददगार है। धन्यवाद! उपयोगकर्ता Android 10 के साथ गैलेक्सी नोट 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. उसे अपना ऐप इंस्टॉल करने के लिए कहें। डिवाइस को पुनरारंभ करें और फिर अपने ऐप को खोले बिना उबर / लिफ़्ट का उपयोग करना शुरू करें और देखें कि क्या यह काम करता है 2. डिवाइस में किसी प्रकार का मैलवेयर / वायरस हो सकता है। उसे फ़ैक्टरी रीसेट करने के लिए कहें और फिर कार्य निष्पादित करें।
— साहिल मनचंदा

जवाबों:


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"
        .
        .
        .>
...

और यह ठीक से काम करना चाहिए।

यदि आपको अभी भी परेशानी हो रही है, तो अपने प्रश्न को अधिक जानकारी के साथ अपडेट करें और हम आगे भी इसका निदान कर सकते हैं।


एंड्रॉइड ऐप का उदाहरण केवल एंड्रॉइड ओएस द्वारा बनाया जा सकता है और होना चाहिए .. यह क्या है कि वहाँ क्या करना है? इसके अलावा आपको कभी भी अपने आवेदन को स्टेटिक रूप से कठिन नहीं बनाना चाहिए। यह एंड्रॉइड सिस्टम को भ्रमित करता है जब यह अपने रनटाइम से अप्रयुक्त ऐप्स को खाली करना चाहता है
— TacB0sS

इसके अलावा, अगर ऐप का नाम a .something से शुरू होता है, तो यह ऐप क्लास के लिए खोज करता है, ${packageName}.somethingताकि इसका कारण भी न हो
— TacB0sS

यहाँ कुछ संदर्भ सामग्री है यदि आप इस दृष्टिकोण के विभिन्न उद्देश्यों के लिए उत्सुक हैं। github.com/codepath/android_guides/wiki/…
— PGMacDesign

लिंक आपके दृष्टिकोण का वर्णन नहीं करता है .. मैं अपने कैरियर की शर्त लगाऊंगा new MyApplication(), जिसे कभी भी नहीं बुलाया जाता है, जब तक कि आप एक गड़बड़ कस्टम रोम पर नहीं चलते हैं। यह भी नहीं है कि जहां वे आवेदन के लिए एक स्थिर संदर्भ रखते हैं
— TacB0sS
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.