2

我正在尝试向Pocket 应用程序分享一些文本,但它一直告诉我:

"Could not be saved to Pocket. The shared content did not contain any valid web addresses"

我用这个片段来分享:

Intent intent = new Intent(android.content.Intent.ACTION_SEND); 
intent.setClassName(info.activityInfo.packageName, info.activityInfo.name); 
intent.setType("text/plain"); 
intent.putExtra(Intent.EXTRA_SUBJECT, subject); 

if(info.activityInfo.packageName.contains("pocket"))  { 
    intent.putExtra(Intent.EXTRA_TEXT, link); 
}

((Activity)context).startActivity(intent);

它适用于 GMail 或 Evernote,但共享到 Pocket 时出现问题。我敢打赌它与 putExtra() 以及放在那里的东西有关。谁能解释一下?

谢谢!

4

2 回答 2

2

问题在这里:

if(info.activityInfo.packageName.contains("pocket"))  { 
  intent.putExtra(Intent.EXTRA_TEXT, link); 
}

您正在检查当前活动的包名称是否包含“口袋”一词。如果没有,您的意图将不包含 Pocket 应用程序所需的 EXTRA_TEXT。

为什么不总是提供EXTRA_TEXT?

如果您真的只想在安装了 Pocket 应用程序后填充 EXTRA_TEXT,您可以执行以下操作:

PackageManager pm = getPackageManager(); 
try {
       pm.getPackageInfo("com.ideashower.readitlater.pro", PackageManager.GET_ACTIVITIES);
       intent.putExtra(Intent.EXTRA_TEXT, link); 
} catch (PackageManager.NameNotFoundException e) { 
      // Pocket app not installed
}
于 2013-04-19T21:02:37.003 回答
0

意图.putExtra(意图.EXTRA_TEXT,文本);

如果共享到口袋,“文本”应该与其他字符有空格,例如:

if text = "abc abc abc abchttp://www.google.com"

口袋不会得到网址

应该是 text = "abc abc abc abc http://www.google.com "

但印象笔记可以自动提取网址

于 2015-03-11T11:17:43.727 回答