() {
+
+ private String error;
+
+ @Override
+ protected Void doInBackground(Void... params) {
+ FileOutputStream fos = null;
+ try {
+ fos = new FileOutputStream(imageFile);
+ image.compress(format, 100, fos);
+ } catch (IOException e) {
+ error = "写入文件失败!";
+ this.cancel(true);
+ } finally {
+ if (fos != null) {
+ try {
+ fos.flush();
+ fos.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ protected void onCancelled() {
+ listener.onBitmapSaveError(error);
+ }
+
+ @Override
+ protected void onPostExecute(Void result) {
+ listener.onBitmapSaved();
+ }
+ }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ }
+}
+```
+
+
+
+
+
+## 四、运行结果及截图
+
+
+
+![lab6](lab6-pic.jpg)
+
+
+
+
+
+## 五、实验心得
+
+ 本次实验学习Android上的网络编程。目的是在应用中通过网络编程访问GitHub的数据文件,并且解析文件,按照老师的代码成功编写了这个程序,也能成功运行,同时还能获取到当前的网络状态是流量还是WIFI,非常方便。
+
diff --git a/students/net1814080903108/report/lab7-pic1.png b/students/net1814080903108/report/lab7-pic1.png
new file mode 100644
index 000000000..68f39056a
Binary files /dev/null and b/students/net1814080903108/report/lab7-pic1.png differ
diff --git a/students/net1814080903108/report/lab7-pic2.png b/students/net1814080903108/report/lab7-pic2.png
new file mode 100644
index 000000000..acf3622f3
Binary files /dev/null and b/students/net1814080903108/report/lab7-pic2.png differ
diff --git a/students/net1814080903108/report/lab7.md b/students/net1814080903108/report/lab7.md
new file mode 100644
index 000000000..b8f73b52a
--- /dev/null
+++ b/students/net1814080903108/report/lab7.md
@@ -0,0 +1,150 @@
+# 实验七 Android设备编程
+
+## 一、实验目标
+
+
+
+1.理解Android相机、蓝牙、传感器等设备编程方法;
+
+2.理解Android设备编程与前面所学组件、存储、网络及界面开发的知识点关系。
+
+## 二、实验内容
+
+
+
+1.选择一个跟选题相关的设备功能;
+
+(1)拍照显示、录视频;
+(2)控制和检测网络;
+(3)获取用户位置信息;
+(4)判断屏幕方向并提示用户旋转手机(小游戏);
+(5)摇一摇手机。
+
+2.编程实现设备使用。
+
+## 三、实验步骤
+
+1.建立xml文件
+
+xml代码:
+
+```xml
+
+
+
+
+
+
+
+
+```
+
+
+
+2.建立PhotoActivity.java
+
+PhotoActivity.java代码:
+
+```java
+package edu.hzuapps.androidlabs.examples;
+
+/**
+ * 拍照示例。
+ *
+ * 需要在AndroidManifest.xml中添加设置:
+ *
+ *
+ */
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.provider.MediaStore;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+
+import edu.hzuapps.androidlabs.R;
+
+public class PhotoActivity extends AppCompatActivity {
+
+ private LinearLayout linearLayout;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_photo);
+
+ // 准备界面
+ linearLayout = findViewById(R.id.linear_layout);
+
+ // 处理点击按钮
+ ((Button) findViewById(R.id.button_take_photo)).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) { // 请求拍照
+ dispatchTakePictureIntent();
+ }
+ });
+ }
+
+ static final int REQUEST_IMAGE_CAPTURE = 1;
+
+ // 请求拍照
+ private void dispatchTakePictureIntent() {
+ Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
+ if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
+ startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
+ }
+ }
+
+ // 获取缩略图
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+ //super.onActivityResult(requestCode, resultCode, data);
+ if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
+ Bundle extras = data.getExtras();
+ Bitmap imageBitmap = (Bitmap) extras.get("data");
+ ImageView imageView = new ImageView(this);
+ // TODO: 如何设置图片的大小?
+ imageView.setImageBitmap(imageBitmap);
+ linearLayout.addView(imageView);
+ }
+ }
+}
+```
+
+
+
+
+
+## 四、运行结果及截图
+
+![lab7-pic1](lab7-pic1.png)
+
+![lab7-pic1](lab7-pic1.png)
+
+## 五、实验心得
+
+ 本次实验学习Android上的设备编程,一开始由于API接口太高级的原因无法运行成功,后来把安卓降到5.0就能够成功运行了。
+