আমার অ্যান্ড্রয়েড অ্যাপ লিফট অ্যাপটিকে ওভাররাইড করছে?


13

আমি এমন একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন তৈরি করেছি যা কোনওভাবে লিফ্ট ড্রাইভার অ্যাপ্লিকেশনটি গ্রহণ বা ওভাররাইড করে। মূলত, যখনই কোনও ব্যবহারকারী আমার অ্যান্ড্রয়েড অ্যাপ্লিকেশনটি ডাউনলোড করেন, তখন এটি কোনওভাবে তার ল্যাফ্ট অ্যাপ্লিকেশনটি গ্রহণ করে। তিনি লিফ্টের কাছ থেকে কোনও রাইডের অনুরোধ পাবেন না (এমনকি একটি অতি ব্যস্ত সময়ের মাঝেও)। তারপরে, যখন সে আমার অ্যাপটিকে মুছে ফেলবে, এটি আবার পুরোপুরি কার্যকর হয়। তিনি সঙ্গে সঙ্গে আবার চড়ান। এটি আমার দেখা সবচেয়ে অদ্ভুত জিনিস। এবং এটি কেবল কাকতালীয় নয়, যখন সে তার অ্যাপ্লিকেশনগুলিকে হত্যা করতে যায়, এটি আক্ষরিক অর্থে আমার অ্যাপ্লিকেশন লোগোটি Lyft ড্রাইভার অ্যাপটি গ্রহণ করে দেখায়।ফটো সংযুক্তলক্ষ করুন যে এটির মূলত Lyft লোগোটি কীভাবে রয়েছে। তারপরে, যখন আমার অ্যাপ্লিকেশন ইনস্টল হবে, তখন এতে ল্যাফ্ট অ্যাপের জন্য আমার লোগো রয়েছে (আমার লোগোটি কেবলমাত্র ডিফল্ট অ্যান্ড্রয়েড লোগো)। এমনকি তিনি আমার অ্যাপ্লিকেশনটি মেরে ফেলতে পারেন, এবং তার লিফ্ট এবং উবার ড্রাইভার অ্যাপ্লিকেশনও কাজ করে না! এটি ঠিক করার একমাত্র উপায় হ'ল আমার অ্যাপ্লিকেশনটি পুরোপুরি আনইনস্টল করা এবং তার ফোনটি পুনরায় চালু করা। তারপরে, সবকিছু সঠিকভাবে কাজ করে। একটি গুরুত্বপূর্ণ উপাদান হ'ল আমি সমস্ত সময় লোকেশন ট্র্যাক করি। এই বাগ দিয়ে কোথায় শুরু করা যায় তা আমি ঠিক নিশ্চিত নই, তাই কোনও ধারণা সহায়ক are ধন্যবাদ! ব্যবহারকারী অ্যান্ড্রয়েড 10 এর সাথে একটি গ্যালাক্সি নোট 10+ ব্যবহার করছে আমাদের অন্যান্য অ্যান্ড্রয়েড ব্যবহারকারীদের কেউই এই সমস্যা সম্পর্কে আমাদের জানাননি। এটি এই ফোনের জন্য একটি অনন্য কেস বলে মনে হচ্ছে।

এখানে আমার সমস্ত প্রকাশ এবং উদ্দেশ্যগুলি রয়েছে:

    <?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
আপনার গ্রাহক আপনার নামটি
কাটাতে

2
কিছু পরামর্শ: 1. আপনার অ্যাপ্লিকেশন ইনস্টল করতে তাকে বলুন। ডিভাইসটি পুনরায় চালু করুন এবং তারপরে আপনার অ্যাপ্লিকেশনটি না খোলায় উবার / ল্যাফ্ট ব্যবহার শুরু করুন এবং এটি যদি কাজ করে তবে দেখুন 2 ice ডিভাইসে কোনও ধরণের ম্যালওয়ার / ভাইরাস থাকতে পারে। তাকে একটি কারখানা রিসেট করতে বলুন এবং তারপরে টাস্কটি সম্পাদন করুন।
সাহিল মনচাঁদা

উত্তর:


2

আমি বিশ্বাস করি যে আপনার সমস্যাটি আপনার নির্দিষ্ট করে দেওয়া nameউপাদানের সাথে সম্পর্কিত Manifest.xml, বিশেষত applicationট্যাগের নীচে ।

আপনি আপনার হিসাবে সংজ্ঞায়িত করেছেন: .parse.parseএটি আমার কাছে বরং অদ্ভুত বলে মনে হয়। এ খুঁজছি এই লিঙ্কে পার্স প্ল্যাটফর্ম থেকে, আমি মনে করি এটা কি আপনি আপনার অ্যাপ্লিকেশনের নামের প্রকাশক করছে।

এই নামের উপাদানটি এটি গুরুত্বহীন বলে মনে হলেও আসলে এটিই যেখানে আপনার অ্যাপ্লিকেশনটি অ্যাপ্লিকেশন স্তরের প্রসঙ্গটি তৈরি করছে বা এই ক্ষেত্রে যেখানে বাহ্যিক সন্ধান Intentsকরা হচ্ছে।

এটি অত্যন্ত সম্ভবত যে সিস্টেমটি কোনটিকে টানতে পারে তা পার্থক্য করতে পারে না এবং এটি ল্যাফটের উপর দিয়ে যখন টানতে পারে তখন টানছে।

এটি সমাধানের জন্য, কেবল আপনার নিজের শ্রেণীর ঘোষণা করুন যা 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

এছাড়াও, যদি অ্যাপের নামটি কোনও কিছু দিয়ে শুরু হয় তবে এটি অ্যাপ্লিকেশন শ্রেণীর জন্য এটি অনুসন্ধান করে ${packageName}.somethingযাতে
এটির

আপনি যদি এই পদ্ধতির বিভিন্ন উদ্দেশ্য সম্পর্কে আগ্রহী হন তবে এখানে কিছু রেফারেন্স উপাদান রয়েছে। github.com/codepath/android_guides/wiki/…
PGMacDesign

লিঙ্কটি আপনার পদ্ধতির বর্ণনা দেয় না .. আমি আমার কেরিয়ারটি বেট করব new MyApplication()যা কখনই ডাকা হয় না, যদি না আপনি কোনও বিশৃঙ্খলা কাস্টম রম না চালান। এছাড়াও তারা যেখানে আবেদনের স্থিতিশীল রেফারেন্স রাখে সেখানে নেই
TacB0sS
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.