文章来自:
1,intentfilter说明:
如果说是将一个activity有其他应用打开,或者是在webView 或者 bybird app中调用我们自己的activity, 那么就可以使用intentfilter来过滤我们自己需要的activity;
*uri参数说明 Java Code:
final Uri uri = Uri.parse(“intbird://com.intbird.soft/testing/tested?name=’Test'”);TextView textView = (TextView)findViewById(R.id.textView);textView.setText(uri.getScheme() + “\n” //intbird+ uri.getPort() + “\n” //-1+ uri.getAuthority() + “\n” //com.intbird.soft+ uri.getHost() + “\n” //com.intbird.soft+ uri.getPath() + “\n” // /testing/tested+ uri.getPathSegments() + “\n” // [tesing,tested]+ uri.getQuery()+”\n”); //(View v) {Intent intent = new Intent();intent.setAction(“android.intent.action.VIEW”);intent.setData(uri);PackageManager packageManager = getPackageManager();List<ResolveInfo> activities = packageManager.queryIntentActivities(intent,0);boolean isIntentSafe = activities.size() > 0;if(isIntentSafe){startActivity(intent);}else{Toast.makeText(MainActivity.this, “匹配None”, Toast.LENGTH_SHORT).show();}}
XML Code:
NOTE : 必须有category标签<activity>>=></activity>2,结合网页调用加深理解
uri: final Uri urihttp = Uri.parse(“https://www.baidu.com/s?wd=intbird“); //schma : http //host : //path : /s //query : wd= intbird
XML
<activity>==></activity>
匹配scheme,匹配host多个,弹出 Intent Chooser
3,同理,我们如果有多个activity;
if 两个都一样:
<activity>>=></activity><activity>==></activity>
So:
but: add path [ android:path=”/testing” ] to one,startActivity directly
,擒龙要下海,打虎要上山。