Question

I´m trying to share some text to Pocket app, but it keeps telling me:

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

I use this snippet to share:

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);

It works for GMail or Evernote, but something is wrong with sharing to Pocket. I bet it is connected with putExtra() and what to put there. Could anyone explain this?

Thanks!

Was it helpful?

Solution

The problem is here:

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

You are checking to see if the package name for your current activity contains the word "pocket". If it doesn't, your intent will not contain EXTRA_TEXT which the Pocket app needs.

Why not always provide EXTRA_TEXT?

If you truly only want to populate EXTRA_TEXT if the Pocket app is installed, you could do something like:

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
}

OTHER TIPS

intent.putExtra(Intent.EXTRA_TEXT, text);

if share to pocket the "text" should have space with other character, example :

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

pocket will not get web address

should be text = "abc abc abc abc http://www.google.com"

but Evernote can auto extract the url

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top