Can you create an intent filter based on query?

I would like to have my application respond to the market link for my application. So the link is market://details?id=my.package.name. Now the reason I want this is so I can send out a link that will open the app if it is installed and open the market page if the application is not installed. The problem I am running into is that my application will respond to all market links and not just my applications link. The reason is the package name is defined in the query part of the Uri. Is there a way to filter an intent based on the query part of the Uri?

Answers


No, sorry, you cannot. You can constrain a filter based on everything to the left of the ?, but that's it.


From Android API 19, you can do it, using ssp, sspPrefix or sspPattern. Example:

<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>

With such filter, the OS will offer your app only for URLs with id=com.example.test parameter, and won't offer it when there is no such parameter. But this works only on Android 4.4+, older versions will ignore sspPrefix.

See also this article: https://chris.orr.me.uk/android-ssp-data-intent-filter/.


Need Your Help

SQL Server: how to improve XQuery-based GROUP_CONCAT

sql-server sql-server-2008 xquery

I have the following query to concat values using commas:

Sorting based on string java

java sorting

I have a list of objects that I need to sort based on a string.

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.