diff --git a/students/net1814080903139/lab5.PNG b/students/net1814080903139/lab5.PNG new file mode 100644 index 000000000..fb8901141 Binary files /dev/null and b/students/net1814080903139/lab5.PNG differ diff --git a/students/net1814080903139/lab5.md b/students/net1814080903139/lab5.md new file mode 100644 index 000000000..c7ff4384b --- /dev/null +++ b/students/net1814080903139/lab5.md @@ -0,0 +1,75 @@ +## 一、实验目标 + +1. 了解Android的存储手段 +2. 掌握Android的文件存储 +3. 掌握Android的数据库存储 + +## 二、实验内容 + +1. 将应用产生的数据保存到文件存储中; +2. 说明使用的文件存储方式:内部 or 外部; +3. 将运行结果截图。 + +# 三、实验步骤 + +1. 保存闹钟 + + ```java + private void saveAlarmList() { + Editor editor = getContext().getSharedPreferences( + AlarmView.class.getName(), Context.MODE_PRIVATE).edit(); + + StringBuffer sb = new StringBuffer(); + + for (int i = 0; i < adapter.getCount(); i++) { + sb.append(adapter.getItem(i).getTime()).append(","); + } + if (sb.length() > 1) { + String content = sb.toString().substring(0, sb.length() - 1); + editor.putString(KEY_ALARM_LIST, content); + + System.out.println(content); + } else { + editor.putString(KEY_ALARM_LIST, null); + } + editor.commit(); + } + + private void readSaveAlarmList() { + SharedPreferences sp = getContext().getSharedPreferences( + AlarmView.class.getName(), Context.MODE_PRIVATE); + String content = sp.getString(KEY_ALARM_LIST, null); + + if (content != null) { + String[] timeStrings = content.split(","); + for (String string : timeStrings) { + adapter.add(new AlarmData(Long.parseLong(string))); + } + } + } + ``` + +2. 删除闹钟 + + ```java + private void deleteAlarm(int position) { + AlarmData ad = adapter.getItem(position); + adapter.remove(ad); + saveAlarmList(); + + alarmManager.cancel(PendingIntent.getBroadcast(getContext(), + ad.getId(), new Intent(getContext(), AlarmReceiver.class), 0)); + } + ``` + +# 四、运行结果及截图 + +如图所示:添加闹钟-->删除闹钟 + +![lab5](D:\Desktop\Markdown\移动应用开发\lab5.PNG) + + + +# 五、心得体会 + +​ 通过本次的实验,我学会了如何使用内部存储。这次实验对我来说难度较大,刚开始是在菜鸟教程学习如何使用,但是这个过程中一直报错,最后在百度上找到一些博客解决了我的问题。 \ No newline at end of file diff --git a/students/net1814080903139/lab6 (1).PNG b/students/net1814080903139/lab6 (1).PNG new file mode 100644 index 000000000..d479c8b9f Binary files /dev/null and b/students/net1814080903139/lab6 (1).PNG differ diff --git a/students/net1814080903139/lab6 .md b/students/net1814080903139/lab6 .md new file mode 100644 index 000000000..97766b8d4 --- /dev/null +++ b/students/net1814080903139/lab6 .md @@ -0,0 +1,121 @@ +实验六:Android网络编程 + +## 一、实验目标 + +1. 掌握Android网络访问方法; +2. 理解XML和JSON表示数据的方法。 + +``` +注意:选择实现的功能,一定要跟你的选题相关! +``` + +## 二、实验内容 + +1. 从网络下载一个文件(图片、MP3、MP4); +2. 保存到手机,在应用中使用文件; +3. 将应用运行结果截图。 + +## 三、实验步骤 + +1. 在 AndroidManifest.xml 上添加网络权限 + +``` + +``` + +```java + + + + + + + + +``` + +2. 在layout创建alarm_play_aty.xml作为闹钟播放界面 + + ```java + + + + + + + ``` + +3. 修改AlarmActivity.java + +``` + public class AlarmActivity extends Activity { + @Override + protected void onCreate(Bundle savedInstanceSate){ + super.onCreate(savedInstanceSate); + setContentView(R.layout.alarm_play_aty); + + mp = MediaPlayer.create(this,R.raw.music); + mp.start(); + } + + @Override + protected void onPause() { + super.onPause(); + finish(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mp.stop(); + mp.release(); + } + + private MediaPlayer mp; +} +``` + +4. 创建AlarmReceive.java + +``` + public class AlarmReceiver extends BroadcastReceiver { + + @Override + public void onReceive(Context context, Intent intent) { + System.out.println("闹钟执行了"); + AlarmManager am =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE); + am.cancel(PendingIntent.getBroadcast(context,getResultCode(),new Intent(context,AlarmReceiver.class),0)); + + Intent i = new Intent(context,AlarmActivity.class); + i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); + context.startActivity(i); + + } +} +``` + +4.在resource创建raw文件,引入下载的music.mp3作为闹钟铃声 + +## 四、实验结果及截图 + +![lab6(2)](D:\Desktop\Markdown\移动应用开发\lab6(2).PNG) + +如下图:闹钟播放界面 + +![lab6 (1)](D:\Desktop\Markdown\移动应用开发\lab6 (1).PNG) + + + +## 五、实验心得 + +通过这次实验,我学习了如何使用Android多媒体框架中的一个重要组件MediaPlayer和广播接收器,在这个实验中值得注意的是,在使用广播接收器时一定要在AndroidManifest.xml中注册广播接收器来监听制定的广播意图,无论什么时候Android设备被启动,都将被广播接收器Receiver所拦截,并且在onReceive()中实现的逻辑将被执行。 \ No newline at end of file diff --git "a/students/net1814080903139/lab6\357\274\2102\357\274\211.PNG" "b/students/net1814080903139/lab6\357\274\2102\357\274\211.PNG" new file mode 100644 index 000000000..d8e135a13 Binary files /dev/null and "b/students/net1814080903139/lab6\357\274\2102\357\274\211.PNG" differ