我正在尝试与 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/