Как запустить активность из браузера в android?

Как я могу запустить свою деятельность из браузера Android?

У меня есть ссылка, скажем, http://a.b.com. Мне нужно открыть активность, когда пользователь вводит этот URL-адрес в браузере Android. В моем манифесте Android есть следующие фильтры намерений:

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

person althaf_tvm    schedule 20.04.2011    source источник
comment
Ваш <intent-filter> внутри вашего <activity android:name="MyActivity">?   -  person Aleadam    schedule 20.04.2011
comment
Я хотел бы знать, как начать работу с android: scheme = http, я пробовал раньше безуспешно! :(   -  person Jorgesys    schedule 07.02.2014
comment
когда я попробовал это, я обнаружил, что браузер все еще находится в стеке представлений, как я могу удалить его из стека представлений?   -  person ahmed Shoeib    schedule 03.08.2014


Ответы (2)


Взгляните на Как зарегистрировать некоторое пространство имен URL-адресов (myapp: //app.start/) для доступа к вашей программе, вызвав URL-адрес в браузере в ОС Android?

(Не зацикливайтесь на названии вопроса. Ответы актуальны.)

person Thane Anthem    schedule 20.04.2011
comment
Я искал ответ в Интернете, и все заявляют, что все, что вам нужно сделать, это просто указать фильтр намерений в манифесте. Но даже несмотря на то, что O дал это, я не получаю результата. Когда я набираю URL-адрес в браузере, мое приложение не запускается .... - person althaf_tvm; 21.04.2011
comment
То же самое. Я использую тот же код, что и вы, но он не работает. Я тоже читал несколько статей, сообщений, веток, и все они говорят, что приведенный выше код - это то, что нам нужно. Вы нашли ответ? - person mrd; 03.06.2012

Этот пример запускает мою активность из браузера Android и отображает первые 2 URL формы GET детских колясок.

package com.example.openapp;

import java.util.List;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView txt1 = (TextView) findViewById(R.id.textView1);
        TextView txt2 = (TextView) findViewById(R.id.textView2);
        try{
            Uri data = getIntent().getData();
            if(data != null){
                String scheme = data.getScheme(); 
                String host = data.getHost();
                List<String> params = data.getPathSegments();
                String first = params.get(0); 
                String second = params.get(1);
                txt1.setText(first);
                txt2.setText(second);
            }
        } catch (Exception e){
        }       
    }
}

Вам нужно добавить это в манифест и заменить хост Android своим хостом:

     <activity
        android:name="com.example.openapp.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

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

    </activity>
person dorin.canepa    schedule 10.04.2014