项目有个需求,通过语音打开相应的app,例如我说:“去新街口”,就打开高德地图。讯飞语音demo中就有这样的例子,而它就是通过uir实现的。所以在这儿对该实现做了个总结,以便随时之需。
自定义Uri用于外部启动 app
新建用于外部启动的Activity
应用 A:SchemeURL
activity: SecondActivity
<activity
android:name=".SecondActivity">
<intent-filter>
<data
android:scheme="jackie"
android:host="test.uri.activity"/>
</intent-filter>
</activity><activity
android:name=".SecondActivity">
<intent-filter>
<data
android:scheme="jackie"
android:host="test.uri.activity"/>
</intent-filter>
</activity>
新建启动外部应用的应用
应用 B:StartSchemeURL
Uri uri = Uri.parse("jackie://test.uri.activity?action=123");// action 为传递的数据
Intent intent =newIntent("android.jackie.schemeurl.activity");
intent.setData(uri);
startActivity(intent);
通过Uri来传递参数
应用 A:SchemeURL
activity: SecondActivity
Intent intent = getIntent();
if(null!= intent) {
Uri uri = intent.getData();
if(uri ==null) {
return;
}
String acionData = uri.getQueryParameter("action");
}
网友评论