如何调用android的拍照或本地相册选取,然后再实现相片上传服务器

如何调用android的拍照或本地相册选取,然后再实现相片上传服务器,第1张

首先是拍照:使用Intent即可,
[java] view plaincopyprint
01final String start = EnvironmentgetExternalStorageState();
02private static final String PHOTOPATH = "/photo/";
03
04if(startequals(EnvironmentMEDIA_MOUNTED)){
05Intent intent = new Intent(MediaStoreACTION_IMAGE_CAPTURE);
06File file = new File(EnvironmentgetExternalStorageDirectory()+PHOTOPATH);
07if(!fileexists()){
08filemkdirs();
09}
10tempphontname = SystemcurrentTimeMillis()+"jpg";
11bufferappend(EnvironmentgetExternalStorageDirectory()+PHOTOPATH)append(tempphontname);
12intentputExtra(MediaStoreEXTRA_OUTPUT, UrifromFile(new File(buffertoString())));
13startActivityForResult(intent, 1);
14}
final String start = EnvironmentgetExternalStorageState();
private static final String PHOTOPATH = "/photo/";
if(startequals(EnvironmentMEDIA_MOUNTED)){
Intent intent = new Intent(MediaStoreACTION_IMAGE_CAPTURE);
File file = new File(EnvironmentgetExternalStorageDirectory()+PHOTOPATH);
if(!fileexists()){
filemkdirs();
}
tempphontname = SystemcurrentTimeMillis()+"jpg";
bufferappend(EnvironmentgetExternalStorageDirectory()+PHOTOPATH)append(tempphontname);
intentputExtra(MediaStoreEXTRA_OUTPUT, UrifromFile(new File(buffertoString())));
startActivityForResult(intent, 1);
}


其次是从本地相册选:依旧是Intent
如下代码:
[java] view plaincopyprint
01if(startequals(EnvironmentMEDIA_MOUNTED)){
02 Intent getImage = new Intent(IntentACTION_GET_CONTENT);
03 getImageaddCategory(IntentCATEGORY_OPENABLE);
04 getImagesetType("image/jpeg");
05 startActivityForResult(getImage, 0);
06}
if(startequals(EnvironmentMEDIA_MOUNTED)){
Intent getImage = new Intent(IntentACTION_GET_CONTENT);
getImageaddCategory(IntentCATEGORY_OPENABLE);
getImagesetType("image/jpeg");
startActivityForResult(getImage, 0);
}
接下来是主要的:因为调用完系统的方法后,回返回到回调方法onActivityResult(int, int, Intent)中,
在里面进行主要的照片上传服务器的 *** 作,
见代码:
[java] view plaincopyprint
01@Override
02 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
03 ContentResolver resolver = getContentResolver();
04 if(requestCode==1)//
05 {
06 if(resultCode==ActivityRESULT_OK)
07 {
08 if(EnvironmentgetExternalStorageState()equals(EnvironmentMEDIA_MOUNTED))
09 {
10ew Thread(new Runnable()
11 {
12 @Override
13 public void run() {
14//进行上传 *** 作
15}
16}start();
转载

文件上传需要用到>

一、>

二、特性

1 基于标准、纯净的java语言。实现了>

2 以可扩展的面向对象的结构实现了>

3 支持>

4 通过>

5 利用CONNECT方法通过>

6 Basic, Digest, NTLMv1, NTLMv2, NTLM2 Session, SNPNEGO/Kerberos认证方案。

7 插件式的自定义认证方案。

8 便携可靠的套接字工厂使它更容易的使用第三方解决方案。

9 连接管理器支持多线程应用。支持设置最大连接数,同时支持设置每个主机的最大连接数,发现并关闭过期的连接。

10 自动处理Set-Cookie中的Cookie。

11 插件式的自定义Cookie策略。

12 Request的输出流可以避免流中内容直接缓冲到socket服务器。

13 Response的输入流可以有效的从socket服务器直接读取相应内容。

14 在>

15 直接获取服务器发送的response code和 headers。

16 设置连接超时的能力。

17 实验性的支持>

18 源代码基于Apache License 可免费获取。

三、使用方法

使用>

1 创建>

2 创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建>

3 如果需要发送请求参数,可调用>

4 调用>

5 调用>

6 释放连接。无论执行方法是否成功,都必须释放连接


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12716771.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存