繁体   English   中英

Android.OS.Environment...哪个命名空间?

[英]Android.OS.Environment… which namespace?

我想将一些数据保存到 Anroid 设备的存储(内部/外部)中。 我找到了这篇文章,他们在其中获得了带有以下行的外部存储路径:

var sdCardPath = Android.OS.Environment.ExternalStorageDirectory.Path;

看起来很公平。 但我的 Visual Studio 说了以下内容:

当前上下文中不存在名称“Android”

所以我一直想知道这个Android驻留在哪个命名空间中? 我尝试了很多(例如 AutoImport,但这似乎给了我错误的父级;或者按 F1 获取此处建议的文档),但没有弄清楚如何让它工作。 我必须获得哪个 NuGet-Package 才能获得此 function。 还是我做错了什么?

这是 AutoImport 给我的命名空间:

Xamarin.Forms.PlatformConfiguration.Android.OS.Environment.ExternalStorageDirectory.Path;

但随后它告诉我 Android 没有OS成员。 经过检查,我发现Xamarin.Forms.PlatformConfiguration.Android根本没有成员,所以它下面没有任何成员。 我的Xamarin.Forms被贬低了吗? 根据我的 NuGet-Packagemanager 的说法,一切都是最新的。

这些是我的项目使用的 NuGet 包:

  1. Xamarin.Essentials
  2. Xamarin.Forms
  3. OxyPlot.Core
  4. OxyPlot.Xamarin.Forms

只需在此处输入答案,我们就可以关闭此问题...

您尝试做的问题是您需要了解关注点/抽象是分离的。 核心项目被 Android 和 iOS 项目引用,但 Android 和 Z1BDF605991920DB11CBDF8508 项目没有被核心项目引用EBZ 示意性地,

Core-->Android & Core-->iOSCore<-x-Android, Core<-x-iOS

这是设计使然,即使您可以让它做您正在尝试的事情,但您不应该这样做。

我们知道 iOS 和 Android SDK 非常不同。 因此,为了获取路径/文件名,您必须在下面执行不同的功能。 您共享的代码是仅针对 Android 本地检索路径/文件名的正确方法。

In order to make it work for both iOS & Android, Xamarin Forms provides us with an abstraction layer that takes care of everything underneath for us, and allows us to use this:

string filePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); 
var fileName=Path.Combine(filePath,".");

还有许多其他方法可以执行此操作,如此处的Microsoft 官方文档中所示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM