我想分享一个链接,以便当其他用户点击该链接时,它会打开我的应用程序,其中包含一些我可以处理的Intent数据。
Intent i= new Intent(android.content.Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(android.content.Intent.EXTRA_SUBJECT,"Subject");
i.putExtra(android.content.Intent.EXTRA_TEXT, "xyz.com/blah");
i.putExtra("important stuff", "important stuff");
startActivity(Intent.createChooser(i, "Share via"));
我还在清单中添加了这个:
<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="http" />
<data android:scheme="https" />
<data android:host="xyz.com" />
</intent-filter>
因此,点击共享文字后,我的应用就会打开。现在我想根据important stuff
在我的应用中工作。但是,点击它(例如来自Whatsapp),我只能在收到的意图中得到以下内容。
字符串名称:com.android.browser.application_id
密钥中的值:com.whatsapp
如何取回我发送的important stuff
意图?
答案 0 :(得分:2)
如何才能收回我发送给意图的重要内容?
你没有。
虽然欢迎您在Intents
上添加随机内容,但不要指望其他应用可以对它们执行任何操作。特别是the ACTION_SEND
documentation中没有任何内容要求ACTION_SEND
的实施者对随机附加内容做任何事情,更不用说以某种方式将它们发回给你了。
同样,虽然欢迎您发明新的HTTP标头,但并不要求Web服务器关注它们,更不用说在响应中将它们发回给您。
相反,将xyz.com/blah
替换为xyz.com/important/stuff
(或可能xyz.com/blah?important=stuff
),并从用于开始您的活动的Uri
中获取数据。您可以通过活动的Uri
方法getIntent().getData()
通过onCreate()
获取此getData()
,或Intent
传递给onNewIntent()
的{{1}},具体取决于您的清单设置以及此活动的现有实例是否已存在。)