Android Native Plugin : onNewIntent not working when launching the app

Hi everyone,

i need some help for an android native plugin.

I want to launch my application from a custom URL scheme and get the complet URL on unity.

My application is launch from the URL it’s ok.

But if my unity application is not allready launched on the background, it doesn’t go on my override of OnNewIntent, and i don’t know why…

it seems i missed a configuration on my manifest, but don’t know what…

here is what i have done on android studio :

public class MainActivity extends UnityPlayerActivity {
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        handleAccessToken(intent);
    }

    private void handleAccessToken(Intent intent) {
        Log.d("handleAccessToken", "handleAccessToken");
        Uri uri = intent.getData();
        if (uri != null && uri.toString().startsWith("my3dplayer")) {
            Log.d("Unity", "URI : " + uri.toString());
            UnityPlayer.UnitySendMessage("AccessManager", "OnAccessToken", uri.toString());

            Context appContext = UnityPlayer.currentActivity.getApplicationContext();
            SharedPreferences prefs = appContext.getSharedPreferences(appContext.getPackageName() + ".v2.playerprefs", Context.MODE_PRIVATE);
            prefs.edit().putString("LaunchUrl", uri.toString()).commit();
        }
    }
}

here is my manifest :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
  <application android:icon="@drawable/app_icon" android:label="@string/app_name">
    <activity android:name=".MainActivity" android:label="@string/app_name" android:launchMode="singleTask" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:screenOrientation="sensor">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <intent-filter>
        <data android:scheme="my3dplayer" />
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
      </intent-filter>
    </activity>
  </application>
</manifest>

it’s my first android native plugin and first time on android studio, not sure of what i’m doing…

I can tell you how it looks like in our project although I can’t claim to understand how it all works :). This is what we have in our main activity:

@Override
protected void onResume() {
	//We use getIntent().getData() and getIntent().getStringExtra(...) here
	super.onResume();
}

protected void onNewIntent(Intent intent) {
	super.onNewIntent(intent);
	setIntent(intent);
}

And in our manifest file we added attribute android:launchMode=“singleTop” to our lunch activity.