Android Глубокие ссылки Захват времени выполнения - PullRequest
0 голосов
/ 20 октября 2019

Я разрабатываю Java-плагин для моего проекта Unity3D. Я хочу, чтобы он обрабатывал глубокие ссылки. поэтому я настроил манифест, как показано ниже:

<activity  android:name="org.relegames.rele.AppStartActivity"  android:launchMode="singleTask" >
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
  </intent-filter>

  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="rele" android:host="checkdata"/>
  </intent-filter>

  <meta-data android:name="unityplayer.UnityActivity" android:value="true" />

</activity>

Так что теперь, когда глубокая ссылка открывается браузером, запускается AppStartActivity и вызывается метод действия onCreate. (AppStartActivity - это мое пользовательское действие, которое расширяет UnityPlayerActivity и Unity использует его в качестве основного действия.)

Так в чем же проблема? в основном я хочу обрабатывать глубокие ссылки, когда приложение открыто и приостановлено в фоновом режиме. Например, пользователь открывает приложение, нажимает кнопку «Домой», открывает браузер и затем использует глубокую ссылку. Теперь приложение будет открыто, но я не могу справиться с этим. Я использовал приемники вещания, но не работал:

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    IntentFilter filter = new IntentFilter();
    filter.addAction("android.intent.action.VIEW");
    filter.addCategory("android.intent.category.DEFAULT");
    filter.addCategory("android.intent.category.BROWSABLE");
    filter.addDataScheme("rele");

    receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {

            Log.d("RELE",intent.getAction());
            UnityPlayer.currentActivity.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(UnityPlayer.currentActivity,"Deep link runtime",Toast.LENGTH_LONG).show();
                }
            });
        }
    };


    registerReceiver(receiver, filter);

Также есть вторая проблема, с которой я сталкиваюсь:

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

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