【问题标题】:Intents getExtra()/putExtra in Android Api level 30 not workingAndroid Api 30 级中的意图 getExtra()/putExtra 不起作用
【发布时间】:2022-01-27 12:31:51
【问题描述】:

为什么这段代码不能在 Android API 级别 30 的设备上正常运行(附加项为空)? 然而,在 API 级别 29 中,extra 不为空,我们得到了我们发送的内容。

我们发送的附加内容只是一个字符串。

我们正在从 Unity 应用 (C#) 启动 Intent,但不确定这是否相关。

Android Studio 中的 Java 代码

public void onResume() {
    super.onResume();

    
    Bundle extras = getIntent().getExtras();

    if (extras != null) {
        //not null in 29, null in 30
            }
    }

Unity(C#) 代码

AndroidJavaClass up = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject ca = up.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject packageManager = ca.Call<AndroidJavaObject>("getPackageManager");
AndroidJavaObject launchIntent = null;
var bundle = "com.xxxxxx.xxxxx";
launchIntent=packageManager.Call<AndroidJavaObject("getLaunchIntentForPackage",bundle);
launchIntent.Call<AndroidJavaObject>("putExtra", "argument", "StringArgument");
ca.Call("startActivity", launchIntent);

【问题讨论】:

    标签: java c# android unity3d android-intent


    【解决方案1】:

    我设法找到了解决此问题的方法。根据link,似乎较新版本的 Android 有一个单独的权限层,用于更安全的意图操作。

    基本上我将这一行添加到两个应用程序的 AndroidManifest.xml 文件(Android Studio 应用程序和 Unity 应用程序)中:

    &lt;uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" tools:ignore="QueryAllPackagesPermission" /&gt;

    【讨论】:

      【解决方案2】:

      抱歉回复晚了。我想我会发布这个,因为它仍然可以帮助你或帮助其他人。

      我也尝试从 Unity 提供数据,但遇到了同样的问题。我的解决方案不是使用意图,而是在我的 Android 应用程序中调用一个方法。以下是我的做法。

      在 Unity 方面

      string message = "Hello from Unity!";
      AndroidJavaClass bridgeClass = new AndroidJavaClass("com.example.BridgeActivity");
      bridgeClass.CallStatic("unityDataServed", message);
      

      在 Android 方面

      创建一个静态方法(在本例中,该方法称为 unityDataServed),该方法在 bridgeClass 引用的类中接收字符串作为参数。

      【讨论】:

      • 您好,感谢您的回复。我认为这种方法仅在您将 android 部分集成为 aar 时才有效。我需要在平板电脑上调用其他应用,这就是我使用意图的原因。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 2014-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多