Deep linking branch.io not working in the some android devices(such as Samsung) with the operating system 6.0 & 7.0

Hi, I have a problem with the deep linking which is provided by branch.io platform. According to the online documentation (https://github.com/BranchMetrics/android-branch-deep-linking ) we set up in the our project with the branch.io library.  In the AndroidManifest.xml we insert the  deep linking url schemes and prefix with the intent filters in the first activity of the application. More specifically, In the android manifest has the follow code,

<activity
    android:name=".activity.splash.MainActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:label="@string/app_name"
    android:screenOrientation="portrait">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

    <intent-filter>
        <data android:scheme="vfcuapp" />
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
    </intent-filter>
    <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data
            android:host="vfcu.app.link"
            android:scheme="https" />
    </intent-filter>
</activity>

In addition, we have custom application class in our project, and for this reason we insert the below code in the onCreate() method

Branch.getAutoInstance(this, true); 


and in the first activity of project(MainActivity.class) 
    Branch branch = Branch.getInstance();
    branch.initSession(new Branch.BranchReferralInitListener() {
        @Override
        public void onInitFinished(JSONObject referringParams, BranchError error) {
            if (error == null) {
                // params are the deep linked params associated with the link that the user clicked -> was re-directed to this app
                // params will be empty if no data found
                // ... insert custom logic here ...
                if (referringParams != null) {
                    String deepLinkValue = referringParams.optString(Definitions.DEEP_LINK_KEY, "");
                    if (deepLinkValue == null || deepLinkValue.isEmpty()) {
                        deepLinkValue = referringParams.optString(Definitions.DEEP_LINK_KEY_NON_BRANCH, "");
                    }
                    SharedPreferencesUtils.setDeeplinkPath(MainActivity.this, deepLinkValue);
                    Timber.v("DeepLink value -> " + deepLinkValue);
                }
            } else {
                Timber.v(error.getMessage());
            }
        }
    }, this.getIntent().getData(), this);
}



When we press the deep linking url schemes with the right query parameter 
in some devices, the initSession method returns server error and not pass 
the parameters to our project. This problem seems that there is in samsung devices with 6.0 and 7.0 operation system. 


In other cases the deep linking works fine. We don't understand the main problem of this case. 

I appreciate for your feedback, 
ATCOM GREECE — Developer
1 Answer(s)
Answered on July 12, 2017.

Can you create a ticket for our integrations team with your account details here and we will have a look. Thanks!

Developer