Search Unity

How to get extra string value when using custom UnityPlayerActivity

Discussion in 'Android' started by Kichang-Kim, Oct 22, 2021.

  1. Kichang-Kim

    Kichang-Kim

    Joined:
    Oct 19, 2010
    Posts:
    1,011
    Hi. I'm trying to implement some automated test for Unity Android app.

    Here is my C# code for getting extra value from intent:

    Code (CSharp):
    1. var playerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    2. var activity = playerClass.GetStatic<AndroidJavaObject>("currentActivity");
    3. var intent = activity.Call<AndroidJavaObject>("getIntent");
    4. var extras = intent.Call<AndroidJavaObject>("getExtras");
    5. var value = extras.Call<string>("getString", name);
    Then here is app execution command for ADB:
    adb shell am start -n my.package/com.unity3d.player.UnityPlayerActivity -e mykey myvalue


    Above code works perfectly, and I can read extra string "mykey" from Unity C# code.

    But when I extended UnityPlayerActivity to custom activity (https://docs.unity3d.com/Manual/AndroidUnityPlayerActivity.html), it does not work anymore.

    I changed adb command for my custom activity like this:
    adb shell am start -n my.package/my.app.CustomUnityPlayerActivity -e mykey myvalue


    App is successfully executed, but its extra value always return null.

    Any ideas?

    Thanks.