Как запустить приложение Unity с намерением из другого приложения? - PullRequest
0 голосов
/ 17 февраля 2020

Я пытался открыть приложение с помощью нескольких тестирующих приложений, которые позволяют мне создать намерение. Но это не работает, а также не с моим кодом. Мое предположение для root проблемы - сгенерированный файл манифеста из Unity. Экспортировано 2 проекта, имя пакета, видимое для adb et c. находится в этом манифесте.

<?xml version="1.0" encoding="utf-8"?>
<!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.app" xmlns:tools="http://schemas.android.com/tools" android:installLocation="preferExternal">
  <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
  <application android:label="@string/app_name" android:icon="@mipmap/app_icon" />
</manifest>

В этом манифесте нет фильтра намерений, и, поскольку в этом проекте нет активности, я не уверен, как его добавить. Я думаю, что мне нужен фильтр намерений, чтобы заставить намеренный вызов извне моего приложения работать. Кто-нибудь решал это раньше или у него есть идея, как это решить?

Другой манифест выглядит так, но имеет общее имя пакета c, которое также не видно снаружи (adb). Но у этого есть намеренный фильтр. Но я почти уверен, что не могу получить к этому доступ с намерением.

<?xml version="1.0" encoding="utf-8"?>
<!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" xmlns:tools="http://schemas.android.com/tools">
  <application>
    <activity android:name="com.unity3d.player.UnityPlayerActivity" android:theme="@style/UnityThemeSelector" android:screenOrientation="fullSensor" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection|density" android:hardwareAccelerated="false">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
      <meta-data android:name="android.notch_support" android:value="true" />
    </activity>
    <meta-data android:name="unity.splash-mode" android:value="0" />
    <meta-data android:name="unity.splash-enable" android:value="True" />
    <meta-data android:name="notch.config" android:value="portrait|landscape" />
    <meta-data android:name="unity.build-id" android:value="f5abdf68-b589-4d67-acb2-5c55e15b3fd3" />
  </application>
  <uses-feature android:glEsVersion="0x00030000" />
  <uses-feature android:name="android.hardware.vulkan.version" android:required="false" />
  <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
  <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" />
  <uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" />
</manifest>

1 Ответ

0 голосов
/ 17 февраля 2020

Если это манифест android в папке temp-> staging area, и вы изменили его ... он не будет работать. потому что единство создает новый android манифест каждый раз, когда вы его строите. Вместо этого создайте файл манифеста android в папке Plugins -> Android и создайте фильтр намерений, и Unity автоматически объединит манифест 2 android.

И убедитесь, что вы вносите изменения во второй Намерение фильтровать тот с данными VIEW. добавьте что-то вроде android: схема (я на мобильном и просто Google, и вы найдете это) и ваше намерение et c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...