基本所需功能
当Android手机上的用户访问网址http://www.example.com?key=asdf
时,我希望以某种方式保存值asdf
,以便手机上的任何应用可以在以后访问该网址。
最终目标
目标是通过将朋友引导到网址来邀请朋友加入应用的简单方法。该URL有一个从市场上下载我的应用程序的链接,因此接受邀请的唯一要求是访问该URL并单击单个链接。安装完应用后,它就会获取值asdf
并将您与邀请您的人联系起来。
我尝试过的事情
我最初的想法是使用类似localStorage
或Cookie的内容,但由于安全问题,似乎不太可能出现涉及其中任何一种的解决方案。
到目前为止,我提出的最佳解决方案是使用com.android.browser.permission.READ_HISTORY_BOOKMARKS
权限来读取用户的历史记录,以便从我的域中搜索URL。这是一个非常好的解决方案,但它不适用于其他浏览器,如移动Firefox。此外,它需要一个阴暗的许可,我想尽可能避免。
答案 0 :(得分:1)
很抱歉,没有任何支持的方法可以执行此操作。
答案 1 :(得分:1)
要实现您的实际目标,您可以使用Google Analytics使用的相同方法。 基本的想法是,您使用指向应用程序商店的URL,并使用特定格式的引用者值传递给应用程序。虽然此字符串的格式应该可以是任何内容,但如果您不遵循实际的Google Analytics格式,则会出现问题报告。
示例:
http://market.android.com/details?id=com.example.myapp&referrer=utm_source%3Dfriend%26utm_medium%3Dinvite%26utm_content%3Dasdf%26utm_campaign%3Dinvite
找到更多特定于分析的文档
然后,您需要为com.android.vending.INSTALL_REFERRER类型实现广播接收器
在你的清单中,它看起来像:
<!-- Used for install referrer tracking -->
<receiver android:name=".MyReceiverClass" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
有关实施BroadcastReceiver的详细信息,请参阅Android文档。
此方法要求朋友使用Google Marketplace(通过点击生成的网址)在设备上下载应用,因为它是接收引荐来源数据并将其传递给应用的MarketPlace应用。
注意:虽然该方法可行,但当前的MarketPlace应用可能会出现问题,导致无法正常工作。见bug:http://code.google.com/p/android/issues/detail?id=19247