我最近开始学习Android,我想制作一个从相机意图中拍摄照片并将其发送到服务器的应用程序,但我只能拍照。有人可以帮助我吗?现在放置代码。客户...
public class SendPhoto extends Activity {
private int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
int i;
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(), "temp/test.jpg");
Uri outputFileUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
// start the image capture Intent
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
int i;
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
try{
FileInputStream fis = new FileInputStream("sd/temp/test.jpg");
Socket sock = new Socket ("hostname",3333);
DataOutputStream os = new DataOutputStream(sock.getOutputStream());
while ((i = fis.read()) > -1)
os.write(i);
fis.close();
os.close();
sock.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
服务器...
public class Server {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
ServerSocket socket = new ServerSocket(3333);
System.out.println("Server started. Listening to the port 3333");
while (true) {
Socket clientSocket = socket.accept();
DataInputStream dis = new DataInputStream(clientSocket.getInputStream());
FileOutputStream fout = new FileOutputStream("output.jpg");
int i;
while ( (i = dis.read()) > -1) {
fout.write(i);
}
DataOutputStream outToClient= new DataOutputStream(clientSocket.getOutputStream());
outToClient.writeBytes("Hello");
fout.flush();
fout.close();
dis.close();
clientSocket.close();
}
}
}
谢谢你。