2012-05-02 5 views
9

신청서의 시장 링크에 신청서를 보내고 싶습니다. 따라서 링크는 market : // details? id = my.package.name입니다. 이제 내가 원하는 이유는 응용 프로그램이 설치되어있는 경우 응용 프로그램을 열고 응용 프로그램이 설치되어 있지 않으면 시장 페이지를 열 수있는 링크를 보낼 수 있기 때문입니다. 내가 겪고있는 문제는 내 응용 프로그램이 내 응용 프로그램 링크뿐만 아니라 모든 시장 링크에 응답한다는 것입니다. 그 이유는 패키지 이름이 Uri의 쿼리 부분에 정의되어 있기 때문입니다. Uri의 쿼리 부분을 기반으로 인 텐트를 필터링하는 방법이 있습니까?쿼리를 기반으로 의도 필터를 만들 수 있습니까?

답변

6

아니요, 죄송합니다. ?의 왼쪽에있는 모든 것을 기반으로 필터를 제한 할 수 있지만 그게 전부입니다.

+0

답변 해 주셔서 감사합니다. 왜 내가이 일을 할 수 없었는지 설명합니다. 문서에서 명확하게 불리지 않았습니다. – charlest

6

ssp, sspPrefix 또는 sspPattern을 사용하면 Android API 19에서이를 수행 할 수 있습니다. 예 :

같은 필터와
<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
    <data 
     android:scheme="https" 
     android:sspPrefix="//play.google.com/store/apps/details?id=com.example.test" 
    /> 
</intent-filter> 

의 OS는 id=com.example.test 매개 변수를 URL에 대한 귀하의 응용 프로그램을 제공 할 것이며, 이러한 매개 변수가 없을 때이를 제공하지 않습니다. 그러나 이것은 Android 4.4 이상에서만 작동하며 이전 버전에서는 sspPrefix을 무시합니다.

이 항목의 내용은 https://chris.orr.me.uk/android-ssp-data-intent-filter/입니다.

+0

이 방법은 Android 4.4 이상을 실행하는 기기에서도 신뢰할 수 없습니다. https://stackoverflow.com/questions/46708662/android-sspprefix-is-ignored – CalumMcCall

관련 문제