android:android Intent and IntentFilter
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() + //intbird + uri.getPort() + //-1 + uri.getAuthority() + //com.intbird.soft + uri.getHost() + //com.intbird.soft + uri.getPath() + // /testing/tested + uri.getPathSegments() + // [tesing,tested] + uri.getQuery()+); // name='Text'
public void onClick(View v) { Intent intent = new Intent(); intent.setAction(android.intent.action.VIEW); intent.setData(uri); PackageManager packageManager = getPackageManager(); List 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標籤
2,結合網頁調用加深理解
uri:
final Uri urihttp = Uri.parse(“https://www.baidu.com/s?wd=intbird“);
//schma : http
//host : www.baidu.com
//path : /s
//query : wd= intbird
XML
匹配scheme,匹配host多個,彈出 Intent Chooser
3,同理,我們如果有多個activity;
if 兩個都一樣:
So:
but: add path [ android:path=”/testing” ] to one,startActivity directly