2013-09-27 2 views
7

В настоящее время в моем приложении у меня есть моя собственная схема URI для обнаружения, когда пользователь нажимает на определенный URI.Получение данных для пользовательской схемы URL в Android

Код, используемый в Manifest файла, как показано ниже:

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

Если пользователь нажимает на ссылку, которая имеет свой пользовательский URI в браузере, он теперь будет всплывающее варианты пользователю выбрать мое приложение.

Но как передать эти данные, которые являются ссылкой на мое приложение при запуске для дальнейшей обработки? В основном, как передавать данные из браузера в мое приложение?

Заранее спасибо

+0

Почему вы устанавливаете android.intent.action.VIEW дважды? – portfoliobuilder

+0

@portfoliobuilder Должен быть один раз, предположим, что он не пропустил никакой ошибки, если он был написан дважды, поэтому пропустил бы его. – aandroidtest

ответ

9

Предположим URL вы щелкаете мышью http://twitter.com/status/1234 Вы можете получить данные, используя следующий метод.

// http://twitter.com/status/1234 
    Uri data = getIntent().getData(); 
    Log.d(TAG, data.toString()); 
    String scheme = data.getScheme(); // "http" 
    Log.d(TAG, scheme); 
    String host = data.getHost(); // "twitter.com" 
    Log.d(TAG, host); 
    String inurl = data.toString(); 
    List<String> params = data.getPathSegments(); 
    String first = params.get(0); // "status" 
    String second = params.get(1); // "1234" 
+0

Спасибо! Он работает отлично. – aandroidtest

+0

Рад, что это помогло! –

+0

Я всегда получаю null в путях: (Но данные верны, а не null. – djdance

Смежные вопросы