如何在Xamarin Forms Android中获取共享WhatsApp文本文件的文件名?

14ifxucb  于 2023-01-11  发布在  Android
关注(0)|答案(1)|浏览(139)

我曾经使用以下方法获取通过WhatsApp共享到我的应用的文本文件的名称:

string GetIntentFilename(Android.Net.Uri uri)
{
    string filename;
    string temp;

    using (var c1 = ContentResolver.Query(uri, null, null, null, null))
    {
        c1.MoveToFirst();
        temp = c1.GetString(0);

        filename = temp.Substring(temp.LastIndexOf(":") + 1);
    }

    return filename.Trim();
}

如果我共享一个文件123.txt,上述方法将返回**“123.txt”**
然而最近它给我回了一个奇怪的名字,类似于下面的:文件编号:20230109-WA 0008。
我曾尝试与其他应用共享该文件,他们成功提取了123.txt文件名,因此我确信Intent中存在该信息,但我不知道如何获取。
有什么想法吗?

3phpmpom

3phpmpom1#

参考这个关于Android Studio get shared file, name of Uri, from whatsapp to my app的答案,你可以试试下面的代码:

string GetIntentFilename(Android.Net.Uri uri)
{
    string filename;

    using (var c1 = ContentResolver.Query(uri, null, null, null, null))
    {
     //  var index = c1.GetColumnIndex(OpenableColumns.DisplayName);

     //  the OpenableColumns.DisplayName has been deprecated, you can try the next line code

       var index = c1.GetColumnIndex(IOpenableColumns.DisplayName);
       c1.MoveToFirst();
       filename = c1.GetString(index);
                }
    return filename;
}

相关问题