在Xamarin.Android

时间:2018-04-13 21:45:25

标签: android xamarin xamarin.android

我编写了一个用于与所选应用程序共享文本的Intent,我想获取该特定应用程序的包名称。

public void ShareText(string text)
        {
            Intent sharingIntent = new Intent(Intent.ActionSend);
            sharingIntent.SetType("text/plain");
            sharingIntent.PutExtra(Intent.ExtraText, text);
            StartActivityForResult(Intent.CreateChooser(sharingIntent, "Share via"),555);
        }

我在OnActivityResult

中得到了null
    protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
    {
    if(requestCode == 555)
       {
          // data is null
       }
    }

我如何得到这个?

我们可以在Chrome移动应用中看到这一点。 enter image description here

1 个答案:

答案 0 :(得分:0)

  

意图为空

     

我想获得该特定应用程序的包名称。

完全取决于用户的选择以及该选择是否提供任何回复Intent

因此,例如,应用程序正在共享一些纯文本,用户选择:

  • Clipboard

    • 返回的意图为null
  • Google Drive

    • 返回的意图将包含来自GDrive的URI:

      • 即。 com.google.android.apps.docs.storage.legacy.XXXXXX
  • Google Mail

    • 返回为null

等...