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 "

しかし、Evernote は URL を自動抽出できます

于 2015-03-11T11:17:43.727 に答える