如果设备上安装了应用程序,我想通过链接单击而不是浏览器来打开我的应用程序,否则打开Google Play。所以搜索后..这是我的清单
<activity
android:name="example.com.MyActivity"
android:label="@string/title_activity_open_event_details" >
<intent-filter>
<data
android:host="play.google.com"
android:scheme="http"/>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
这是我的活动
public class MyActivity extends Activity {
private int EventId;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_open_event_details);
tv = (TextView) findViewById(R.id.testtv);
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);
int size = params.size();
// EventId = params.get(size-1);
String third = params.get(size-1);
tv.setText(data.toString());
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my_activity, menu);
return true;
}
}
当我单击此链接时,https://play.google.com/store/apps/details? id = example.com & evid = 117 MyActivity成功打开,但出现在文本视图中的链接仅为https://play.google。 com / store / apps / details?id = example.com而没有&evid = 117,我需要获取一些数据并将其显示在我的活动中
你能帮我知道我在想什么吗?提前致谢
要获取该ID,请尝试以下代码:
Uri data = getIntent().getData();
if (data != null) {
String url = data.toString();
try {
List<NameValuePair> params = URLEncodedUtils.parse(new URI(url), "UTF-8");
for (NameValuePair para : params)
if (para.getName().equals("evid")) {
String id = para.getValue(); //my id (117)
Log.v("myId",id);
}
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
另外,您不包括https协议。添加
<data android:host="play.google.com" android:scheme="https"/>
编辑
我已经测试了此代码,并且可以正常工作。我已经使用上面提供的代码和意图过滤器创建了一个简单的活动:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<action android:name="android.intent.action.VIEW"/>
<data android:host="play.google.com" android:scheme="http"/>
<data android:host="play.google.com" android:scheme="https"/>
</intent-filter>
输出结果如预期的那样117
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句