Android 中通过 Facebook API 上传本地文件

发布于 2024-11-28 17:19:03 字数 279 浏览 0 评论 0原文

我正在尝试获取 Android Gallery 中本地图像文件的 URL。我尝试过类似

file:///mnt/sdcard/test.jpg

或类似的

content://media/external/images/media/1

格式,但没有一个有效。我只是想知道是否有人能给我一个格式正确的 Android 本地文件 URL 示例?我需要这个来在使用 Facebook api 签到时上传照片。非常感谢

I'm trying to get a URL of a local image file in Android Gallery. I've tried formats like

file:///mnt/sdcard/test.jpg

or like

content://media/external/images/media/1

but none of them works. I'm just wondering if anyone can give me a properly formatted Android local file URL example? I need this to upload photo while checking in using Facebook api. thank you very much

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

木有鱼丸 2024-12-05 17:19:03

Facebook API 无法使用您的本地文件 URI,因为它无权访问您手机的内容。您需要使用 POST 请求来物理上传文件的内容。

Facebook API can't use your local file URI as it doesn't have access to the contents of your phone. You need to use a POST request to physically upload the contents of your file.

隱形的亼 2024-12-05 17:19:03

如果我没记错的话 UNIX 路径是这样的:

/mnt/sdcard/test.jpg

If I'm not mistaken UNIX paths go like this:

/mnt/sdcard/test.jpg
郁金香雨 2024-12-05 17:19:03

绝对路径
Environment.getExternalStorageDirectory().getAbsolutePath() 给出 SDCard 的绝对路径。
从这里“/DCIM/Camera/”将为您提供相机用于存储捕获的图像的文件夹的路径。

因此,您的文件路径将类似于

String mBaseFolderPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/Camera/";
String filePath = mBaseFolderPath  + "test.jpg";
Bitmap bitmap = BitmapFactory.decodeFile(filePath);

内容解析器路径
content://media/external/images/media/1 是内容解析器引用的路径。这就像
MediaStore.Images.Media.EXTERNAL_CONTENT_URI + Image Id

如果您获取了图像的 Uri,则可以使用以下方法获取与图像对应的位图。

Bitmap someBitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), url);

沙什

Absolute Path
Environment.getExternalStorageDirectory().getAbsolutePath() gives to absolute path to SDCard.
From here "/DCIM/Camera/" would give you the path to folder used by Camera to store captured image.

So your file path would be something like this

String mBaseFolderPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/Camera/";
String filePath = mBaseFolderPath  + "test.jpg";
Bitmap bitmap = BitmapFactory.decodeFile(filePath);

Content Resolver Path
content://media/external/images/media/1 is the path referred by content resolver. This is like
MediaStore.Images.Media.EXTERNAL_CONTENT_URI + Image Id

If you get hold of Uri of the image then you can use the following to get bitmap correspondong to the image.

Bitmap someBitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), url);

Shash

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文