android - 分享到口袋

标签 android pocket

我正在尝试与 Pocket app 分享一些文字,但它一直告诉我:

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

我用这个 fragment 来分享:

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() 以及放在那里的内容有关。有人能解释一下吗?

谢谢!

最佳答案

问题出在这里:

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

您正在检查当前 Activity 的包名称是否包含单词“pocket”。如果没有,您的 Intent 将不会包含 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
}

关于android - 分享到口袋,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16108356/

相关文章:

http - 设置 header 并使用 $http POST 将数据发送到 pocket api 返回 CORS

objective-c - 使用 swift 桥接库时 NSWorkspace 抛出错误

python - requests_oauth2 使用教程

javascript - Pocket API 重新尝试授权用户时失败

android - 在 Android 上如何将对象从一个 Activity 传递到另一个 Activity?

android - 应用程序无法在设备上运行

java - 如何将视频设置为全屏

android - 是什么让 apk 更新需要这么长时间?

android - Phonegap - 在 phonegap.com 上与本地构建时高度不同?