android Scheme使用 打开指定的Activity

1.在配置文件AndroidMenifest.xml文件中增加下配置

<intent-filter >
                <action android:name="android.intent.action.VIEW"/>     
                <category android:name="android.intent.category.DEFAULT"/>  
                <!-- 该值可以字符 使用的时候传送的Uri值的开头必须跟此值相同-->  
                <data android:scheme="test"/>
            </intent-filter>


注:上配置添加在需要使用Scheme控制启动的Activity下,例如:

<activity
            android:name="com.example.pushtest.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 >
                <action android:name="android.intent.action.VIEW"/>     
                <category android:name="android.intent.category.DEFAULT"/>  
                <!-- 该值可以字符 使用的时候传送的Uri值的开头必须跟此值相同-->
                <data android:scheme="test"/>
            </intent-filter>
            
        </activity>

2.在需要启动该Activity的地方传入Uri值,如下

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
//如非特别需求,只需保证"test"与配置中的Scheme值相同即可,"://"后面可以任意
intent.setData(Uri.parse("test"+"://112345678"));
startActivity(intent);


3.在需要启动的Activity中,如需要获取scheme及Uri的全路径,可以使用如下方法:

Intent intent = getIntent();
String scheme = intent.getScheme();//获取Scheme全名称
String uriPath = intent.getDataString();//获取Uri的全路径

例如,

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.activity_main);

        String scheme = getIntent().getScheme();
        String uriPath = getIntent().getDataString();
        System.out.println("scheme::-->"+scheme+",uriPath:::"+uriPath);
        
    }





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值