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...
Answer by igor84 · Apr 04, 2016 at 02:47 PM
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.
Your answer
![](https://koobas.hobune.stream/wayback/20220612072347im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
android plugin getAssets().open 0 Answers
Unable to package Android app resources, even when blank app. 100 following. 0 Answers
Android Plugin Jar java.lang.ClassNotFoundException 0 Answers
adMob ads are black 2 Answers
How do I manage library dependencies in Unity 5.5 with gradle build system 0 Answers