如果应用程序安装在设备上,我想在链接点击而不是浏览器上打开我的应用程序,否则打开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而没有&amp; evid = 117,我需要获取一些数据并将其显示在我的活动中
你可以帮我知道我错过了什么吗? 提前致谢答案 0 :(得分:1)
要获得该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