Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 94 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
94
Dung lượng
6,5 MB
Nội dung
MỤC LỤC Phiếugiao nhiệm vụ đồ ántốtnghiệp i Lịch trình thực đồ án tốt nghiệp ii Lời cảm ơn iii Mục lục iv Liệt kê hình vi Liệt kê bảng vii Tómtắt .viii CHƯƠNG I: DẪN NHẬP 1.1 Đặt vấn đề 1.2 Lý chọn đề tài 1.3 Nội dungthựchiện 1.4 Giới hạn đề tài 1.5 Dàn ý tìmhiểu 1.6 Tình hình nghiên cứu 1.7 Ý nghĩa thực tiễn đề tài CHƯƠNG II: CƠ SỞ LÝ THUYẾT 2.1 Cổng giao tiếp trường gần 2.1.1 Giới thiệu 2.1.2 Lịch sử phát triển 2.1.3 Các đặc tính kỹ thuật NFC 2.1.4 So sánh với kết nối Bluetooth 2.1.5 Các ứng dụng thực tế NFC 2.2 Hệ điều hành Android 2.2.1 Giới thiệu 2.2.2 Lịch sử phát triển 2.2.2.1 Kiến trúc hệ điều hành Android 10 2.2.2.2 Applications 10 2.2.2.3 Applications Framework 11 2.2.2.4 Libraries 12 2.2.2.5 Android Runtime 12 iv 2.2.2.6 Kernel Linux 13 2.2.3 Các phần mềm hỗ trợ lập trình Android 13 2.3 Giới thiệu board Arduino Mega 2560 14 2.4 Sơ lược ic chuyên dụng PN532 15 2.4.1 Tổng quan PN532 15 2.4.2 Truyền liệu Arduino Mega 2560 PN532 17 CHƯƠNG III: THIẾT KẾ VÀ THI CÔNG 19 3.1 Bài toán thiết kế 19 3.2 Sơ đồ khối 21 3.3 Thiết kế 21 3.3.1 Thiết kế phần cứng 21 3.3.1.1 Khối động lực 22 3.3.2 Thiết kế phần mềm 24 3.3.2.1 Khối thiết bị NFC 24 3.3.2.1.1 Thiết kế giao diện đăng nhập 25 3.3.2.1.2 Thiết kế giao diện mở cửa 26 3.3.2.1.3 Thiết kế giao diện thêm người sử dụng 27 3.3.2.1.4 Thiết kế giao diện thay đổi mật 28 3.3.2.1.5 Thiết kế giao diện thông tin tác giả 29 3.3.2.2 Khối điều khiển trung tâm khối giao tiếp NFC 29 3.4 Thi công 30 3.5 Lưu đồ giải thuật chương trình điều khiển 30 3.5.1 Lưu đồ gải thuật 30 3.5.2 Chương trình điều khiển 36 CHƯƠNG IV: KẾT QUẢ THỰC HIỆN 37 4.1.Khối thiết bị NFC 37 4.1.1Giao diện đăng nhập 37 4.1.2 Giao diện mở cửa 37 4.1.3 Giao diện thay đổi mật 39 4.1.4 Giao diện thêm người sử dụng 39 4.1.5 Giao diện thông tin tác giả 40 4.2 Khối điều khiển trung tâm khối giao tiếp NFC 42 v CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 45 5.1 Kết luận 45 5.2 Hướng phát triển đề tài 45 Tài liệu tham khảo 46 Phụ lục 59 Liệt kê hình Hình 2.1 Chia sẻ liệu điện thoại qua giao tiếp NFC Hình 2.2 Các ứng dụng thực tế NFC Hình 2.3 Cấu trúc Stack Android OS 10 Hình 2.4 Board Arduino Mega 2560 14 Hình 2.5 Sơ đồ khối PN532 16 Hình 2.6 Sơ đồ chân PN532 16 Hình 2.7 Chọn kết nối giao thức kết nối PN532 17 Hình 2.8 Sơ đồ truyền liệu 17 Hình 2.9 Khung truyền liệu 18 Hình 2.10 Khung ACK 18 Hình 3.1 Cửa sử dụng công nghệ NFC 19 Hình 3.2 Mơ tả hoạt động hệ thống 20 Hình 3.3 Các khối hệ thống cửa 20 HÌnh 3.4 Sơ đồ khối hệ thống 21 Hình 3.5 Sơ đồ nguyên lý mạch động lực 22 Hình 3.6 Thiết kế giao diện đăng nhập 25 Hình 3.7 Thiết kế giao diện mở cửa 26 Hình 3.8 Thiết kế giao diện thêm người sử dụng 27 Hình 3.9 Thiết kế giao diện thay đổi mật 28 Hình 3.10 Thiết kế giao diện thơng tin tác giả 29 Hình 3.11 Sơ đồ nguyên lý mạch in khối động lực 30 Hình 3.12 Lưu đồ chương trình 31 Hình 3.13 Lưu đồ chương trình mở cửa 32 Hình 3.14 Lưu đồ chương trình đóng cửa 34 Hình 3.15 Lưu đồ chương trình đăng nhập điện thoại 35 Hình 3.16 Lưu đồ chương trình điều khiển cửa điện thoại 36 vi Hình 4.1 Giao diện đăng nhập 37 Hình 4.2 Giao diện điều khiển mở cửa 38 Hình 4.3 Giao diện thay đổi mật 39 Hình 4.4 Giao diện thêm người sử dụng 39 Hình 4.5 Giao diện thơng tin tác giả 40 Hình 4.6 Thơng tin ứng dụng Android OS 41 Hình 4.7 Giao diện Samsung Note 42 Hình 4.8 Giao diện Sony Z 42 Hình 4.9 Mơ hình sau thi công 42 Hình 4.10 Mơ hình đóng gói sản phẩm 43 Hình 4.11 Giao diện xem logfile 44 Liệt kê bảng Bảng 2.1 So sánh NFC với Bluetooth Bảng 2.2 Các phiên Android Bảng 2.3 Các thông số chi tiết Arduino Mega 2560 15 Bảng 3.1 Bảng kết nối chân Arduino với PN532 30 Bảng 3.2 Bảng kết nối chân Arduino với Step Motor 30 Bảng 3.3 Bảng kết nối chân Arduino với Sensor 30 Bảng 3.4 Bảng trạng thái tạo xung chương trình mở cửa 33 Bảng 3.5 Bảng trạng thái tạo xung chương trình đóng cửa 34 vii TĨM TẮT Đề tài đề xuất phương pháp điều khiển cửa sử dụng phần mềm android điện thoại Trên điện thoại android thiết lập giao diện như: giao diện đăng nhập, giao diện điều khiển mở cửa, giao diện thêm người sử dụng, giao diện thay đổi mật khẩu, giao diện thông tin tác giả Để điều khiển cửa android trước tiên người sử dụng phải đăng nhập tên tài khoản mật Khi đăng nhập đến giao diện điều khiển mở cửa, giao diện ta chạm vào nút “mở cửa” đồng thời áp điện thoại lại gần board PN532, lúc diễn trình giao tiếp điện thoại android PN532 Khi q trình giao tiếp thành cơng PN532 lấy địa ID (Username,Password,ngày,giờ,lệnhcần thực hiện) gửi xuống vi điều khiển arduino Mega2560, arduino nhận địa ID kích hoạt transisitor mạch động lực đóng ngắt để điều khiển động chạy, lúc cửa mở Khi cửa mở sau khoảng thời gian giây cửa tự động đóng lại kết thúc q trình mở cửa viii ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS NGUYỄN VĂN HIỆP CHƯƠNG I: DẪN NHẬP 1.1 Đặt vấn đề Chìa khố từ xƣa đến ln lƣa chọn hàng đầu cho ổ khố tính đơn giản, phổ biến vật liệu làm chúng Song song với chìa khố khí ngƣời phát minh nhiều phƣơng pháp khoá khác nhƣ khoá số, nhiều phƣơng pháp đại nhƣ dấu vân tay, quét võng mạc gần cơng nghệ RFID/NFC (giao tiếp trƣờng gần) Để lĩnh hội nhanh chóng kiến thức VDK, ngƣời học phải nghiên cứu lý thuyết, thiết kế, thi công mạch sau lập trình gây tốn nhiều thời gian cơng sức ngƣời tìm hiểu công nghệ, việc nghiên cứu loại VDK Việc thiết kế KIT thí nghiệm ứng dụng tính VDK làm tăng hiệu việc nắm bắt kỹ thuật, tiết kiệm thời gian chi phí việc nghiên cứu Cơng nghệ cao, phức tạp làm tăng tính bảo mật, nhƣ tiện lợi cho ngƣời sử dụng, đặc biệt smartphone ngày đƣợc phổ biến, tích hợp vào cơng nghệ NFC Vậy thay dùng chìa khoá để mở cửa – rƣờm rà phức tạp ta có xâu 10 chìa khác cho nơi khác nhau, không cần chìa khố mà thay vào sử dụng thiết bị di động (hoặc thẻ Tag) luôn bên ngƣời để mở với tốc độ nhanh chóng gọn gàng, khơng cịn ám ảnh nỗi lo qn hay chìa khố 1.2 Lý chọn đề tài Trong thời đại nay, điện thoại di động giúp ngƣời liên lạc với bạn bè, gia đình, đồng nghiệp… cách dễ dàng Nhƣng với ứng dụng NFC (Near-Field Communications - Giao tiếp trƣờng gần), điện thoại di động trở nên gần gũi với sống ngày, chẳng hạn cần cú chạm đến điện thoại di động khác ta trao đổi thơng tin, mua vé xem hát, trả tiền mua hàng… Chính vậy, việc phát triển công nghệ NFC chất xúc tác quan trọng để phát triển cơng nghệ kết nối khơng dây có tính ổn định, trực quan tƣơng tác chiều thiết bị điện tử Trong thực tế Việt Nam, công nghệ NFC dần đƣợc phổ biến, thể việc thị trƣờng Việt Nam mắt nhiều loại điện thoại có tính Chính việc phát triển sở hạ tầng, cho phù hợp với cơng nghệ nói chung, việc tiếp cận với cơng nghệ nói riêng vấn đề cần thiết Đánh giá từ thực tế xã hội, nhóm sinh viên chúng tơi nhận thấy cần có nghiên cứu kỹ thuật để tiếp cận cơng nghệ Ngoài đề tài lạ, nhóm chúng tơi thực có đam mê lĩnh vực Chính nhóm chúng tơi định chọn đề tài “HỆ THỐNG ĐĨNG MỞ CỬADÙNG NFC ĐIỆN THOẠI” làm đề tài tốt nghiệp nhóm chúng tơi CHƢƠNG I: DẪN NHẬP ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS NGUYỄN VĂN HIỆP 1.3 Nội dungthựchiện Mụctiêuđềtài Tìmhiểu hệ điều hành Android Tìmhiểuứngdụng NFC Thiếtkếhệthốngmởcửadùngđiệnthoạicóchứcnăng NFC Thiếtkếvàthicơng Thiếtkếgiaodiệnmởcửatrênđiệnthoại android Thicôngmạchđộnglựcđiềukhiểncửa 1.4 Giới hạn đề tài Đề tài nàychỉứngdụngchoviệcđóngmởcửa.Phầnmềmchỉsửdụngchođiệnthoại android vàcóhỗtrợchứcnăng NFC.Phầncơkhíhệthốngkháđơngiảnmangtínhchấtmơphỏngnênchƣakếthợptínhnăng ổ khóavàotronghệthống 1.5 Dàn ý tìmhiểu Với hƣớng dẫn thầy Nguyễn Văn Hiệp, nhóm thực bƣớc tiến hành nghiên cứu nhƣ sau: Phân chia nội dung cần tìm hiểu nghiên cứu chủ động mặt thời gian Tìm hiểu hệ điều hành Android Tìm hiểu IC chun dụng PN532 Tìm hiểu cơng nghệ giao tiếp trƣờng gần NFC, điện thoại có hỗ trợ chip NFC Tải cài đặt phần mềm, công cụ hỗ trợ cho việc lập trình ứng dụng hệ điều hành Android Tìm hiểu Arduino Mega 2560 chức đặc tính, tìm hiểu phần mềm lập trình nạp chƣơng trình cho Arduino Mega 2560 Tìm giải thuật chƣơng trình, vẽ lƣu đồ bắt đầu lập trình Tiến hành viết chƣơng trình từ hai đối tƣợng hệ điều hành Android Arduino Mega 2560 Kiểm tra chƣơng trình, thử nghiệm thực tế Tìm khắc phục lỗi, đóng gói sản phẩm Viết báo cáo CHƢƠNG I: DẪN NHẬP ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS NGUYỄN VĂN HIỆP 1.6 Tình hình nghiên cứu Cơng nghệ giao tiếp trƣờng gần (NFC) công nghệ tƣơng đối mẻ Việt Nam nên có đề tài nghiên cứu lĩnh vực Tuy nhiên cơng nghệ RFID tần số 13.56MHz có đề tài đƣợc nghiên cứu ứng dụng thành công vào thực tế Các đề tài hệ điều hành Android đƣợc nghiên cứu nhiều thời gian gần đây: Đề tài “TÌM HIỂU VÀ VIẾT ỨNG DỤNG MINH HỌA CHO HỆ ĐIỀU HÀNH ANDROID” tác giả Hồ Công Đức Huỳnh Huy Tấn, sinh viên trƣờng ĐH Sƣ Phạm Kỹ Thuật năm 2011 Đề tài“THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ DỰA TRÊN HỆ ĐIỀU HÀNH ANDROID” tác giả Nguyễn Huy Đức Hồ Huỳnh Công Nhân sinh viên trƣờng ĐH Sƣ Phạm Kỹ Thuật năm 2011 Đề tài “ĐIỀU KHIỂN THIẾT BỊ BẰNG SMARTPHONE THÔNG QUA GIAO TIẾP NFC” tác giả Nguyễn Đăng Nhật Thái Văn Chánh sinh viên trƣờng ĐH Sƣ Phạm Kỹ Thuật năm 2012 Trên giới đề tài cơng nghệ NFC đƣợc thực phát triển nhiều, với sở hạ tầng đƣợc phát triển ứng dụng liên quan đến NFC ngày đƣợc mở rộng chứng tỏ đƣợc tính ƣu việt 1.7 Ý nghĩa thực tiễn đề tài Với phát triển nhanh chóng thiết bị viễn thông giới, đặc biệt thiết bị điện thoại di động, hệ thống mạng liên quan không ngừng phát triển Với việc thực thành công đề tài này, mở phát triển cho sản phẩm ứng dụng công nghệ Việt Nam Trên giới, công nghệ NFC công nghệ mang tính đột phá Giống nhƣ cơng nghệ RFID, cơng nghệ NFC nhanh chóng trao đổi thơng tin thiết bị chúng chạm vào gần Ngƣời dùng truyền văn bản, hình ảnh, đƣờng link liệu khác Nên từ việc phát triển công nghệ mở tiềm Việt Nam nhƣ: ví điện tử, quản lý nhân viên, poster thông minh, hệ thống âm thanh… CHƢƠNG I: DẪN NHẬP ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS NGUYỄN VĂN HIỆP CHƢƠNG II: CƠ SỞ LÝ THUYẾT 2.1 Cổng giao tiếp trƣờng gần (Near Field Communication – NFC) 2.1.1 Giới thiệu NFC (Near Field Communication) đƣợc phát triển dựa nguyên lý tần số vô tuyến nhận dạng (Radio-frequency identification - RFID) RFID cho phép đầu đọc gởi sóng radio đến thẻ điện tử thụ động để nhận dạng theo dõi Việc giao tiếp đƣợc tiến hành cách đƣa thiết bị lại gần nhau, thông thƣờng nằm khoảng vài cm NFC đƣợc phát triển dựa công nghệ RFID(Radio Frequency Identifi) có nghĩa sóng vơ tuyến nhận dạng - đời năm 1983 Chuẩn NFC bao gồm khái niệm: giao thức giao tiếp định dạng liệu trao đổi, bao gồm chuẩn ISO/IEC 14443 Felica đƣợc dựa chuẩn giao tiếp sóng vơ tuyến sẵn có RFID Các chuẩn bao gồm tiêu chuẩn ISO/IEC 18092 tiêu chuẩn đƣợc định nghĩa cộng đồng NFC (đƣợc thành lập vào năm 2004 Nokia, Sony Philips, đến có 160 thành viên) Cộng đồng phát triển NFC đồng thời cấp chứng nhận cho thiết bị 2.1.2 Lịch sử phát triển Nguồn gốc NFC để nhận dạng sóng vơ tuyến hay cịn gọi RFID RFID cho phép đọc gửi sóng vơ tuyến đến thẻ điện tử thụ động để nhận dạng nhƣ theo dõi Năm 1983 Bằng sáng chế liên quan đến từ viết tắt RFID đƣợc cấp cho Charles Walton Năm 2004 Nokia, Philips Sony thành lập cộng đồng NFC Năm 2006 Thiết lập đặc tính kỹ thuật cho thẻ NFC Năm 2006 Đặc tính kỹ thuật cho “SmartPoster” Năm 2006 Nokia 6131 điện thoại NFC Năm 2009 Vào tháng 1, cộng đồng NFC đƣa tiêu chuẩn Peer to Peer để truyền danh bạ, địa web (URL), khởi tạo Bluetooth chức khác Năm 2010 Samsung Nexus S điện thoại NFC chạy hệ điều hành Android đƣợc mắt Năm 2011 Tại kiện GOOGLE I/O, “How to NFC” trình diễn NFC để khởi tạo game chia sẻ danh bạ, tài nguyên internet, ứng dụng, video… CHƢƠNG II: CƠ SỞ LÝ THUYẾT ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS NGUYỄN VĂN HIỆP Năm 2011 RIM 2011 công ty đƣợc chứng nhận MasterCard Worldwide cho thiết bị họ cho chức PayPass (thanh tốn khơng cần chạm) Năm 2012 Sony giới thiệu “Smart Tags”, thẻ dùng công nghệ NFC để thay đổi chế độ liệu cho smartphone Sony tầm gần Năm 2013 Samsung Visa tuyên bố hợp tác để phát triển toán di động 2.1.3 Các đặc tính kỹ thuật NFC NFC công nghệ giao tiếp không dây tầm ngắn, đặc trƣng yêu cầu khoảng cách 4cm NFC hoạt động tần số 13,56MHz chuẩn giao tiếp ISO/IEC 18000-3 với tốc độ từ 106Kbit/s đến 424Kbit/s NFC liên quan đến thiết bị khởi tạo thiết bị mục tiêu Thiết bị khởi tạo chủ động phát sóng vơ tuyến để cung cấp lƣợng cho thiết bị mục tiêu Điều cho phép thiết bị mục tiêu NFC có hình thức đơn giản nhƣ loại thẻ, giấy, móc chìa khóa khơng cần phải có nguồn cung cấp Giao tiếp ngang hàng NFC đƣợc tiến hành thiết bị đƣợc cấp nguồn Các thẻ NFC có chứa liệu thơng thƣờng đọc đƣợc, nhiên có loại thẻ ghi đƣợc Nó đƣợc lập trình nhà sản xuất sử dụng đặc tính kỹ thuật đƣợc cung cấp cộng đồng NFC Những thẻ chứa thơng tin cá nhân nhƣ thơng tin thẻ tín dụng, thẻ ghi nợ, thẻ khách hàng, mã pin… cách an toàn nhƣ liệu khác Cộng đồng NFC định nghĩa loại thẻ khác tốc độ giao tiếp cấu hình liên quan, nhớ, bảo mật, lƣu trữ liệu số lần ghi Hiện nhớ thẻ dao động từ 96 byte đến 4092 byte (4Kbyte) Với công nghệ thẻ không tiếp xúc, NFC sử dụng cảm ứng từ anten vòng kín đƣợc đặt từ trƣờng nhau, hình thành hiệu ứng nhƣ biến áp lõi khơng khí NFC hoạt động phạm vi băng tần không cần cấp phép toàn cầu 13,56MHz Phần lớn lƣợng sóng radio đƣợc tập trung giới hạn băng thơng cho phép ± 7kHz, nhƣng độ rộng phổ rộng đến 1,8MHz điều chế ASK Khoảng cách hoạt động lý thuyết sử dụng ăngten tiêu chuẩn lên đến 20cm (khoảng cách hoạt động thực tế khoảng 4cm) Tốc độ truyền liệu đƣợc hỗ trợ: 106, 212 hay 424 kbit/s ( tốc độ 848 kbit/s không tuân thủ tiêu chuẩn ISO/IEC 18092) Có chế độ hoạt động: Chế độ giao tiếp bị động: Thiết bị khởi tạo phát trƣờng sóng mang thiết bị mục tiêu đáp lại cách điều chế sóng mang có sẵn đó, thiết bị CHƢƠNG II: CƠ SỞ LÝ THUYẾT strCommandHeader = userActive + ";" + str_date + ";" + str_time + ";" + "WRITEDB;"; strCommandData = strHex2strAscii(strConfig) + "#"; Toast.makeText(v.getContext(), "Vui lòng áp điện thoại vào cửa để cập nhật liệu!", Toast.LENGTH_LONG).show(); } }); mButtonOpenDoor.setOnClickListener(new OnClickListener() { @Override publicvoid onClick(View v) { String userActive = readUserActive(); Time time = new Time(); time.setToNow(); String str_date = time.format("%Y-%m-%d"); String str_time = time.format("%H:%M:%S"); strCommandHeader = userActive + ";" + str_date + ";" + str_time + ";" + "OPENDOOR;"; strCommandData = "#"; Toast.makeText(v.getContext(), "Vui lòng áp điện thoại vào cửa để mở cửa!", Toast.LENGTH_LONG).show(); } }); mButtonCloseDoor.setOnClickListener(new OnClickListener() { @Override publicvoid onClick(View v) { String userActive = readUserActive(); Time time = new Time(); time.setToNow(); String str_date = time.format("%Y-%m-%d"); String str_time = time.format("%H:%M:%S"); strCommandHeader = userActive + ";" + str_date + ";" + str_time + ";" + "CLOSEDOOR;"; strCommandData = "#"; 74 Toast.makeText(v.getContext(), "Vui lòng áp điện thoại vào cửa để đóng cửa!", Toast.LENGTH_LONG).show(); } }); mButtonViewLogfile.setOnClickListener(new OnClickListener() { @Override publicvoid onClick(View v) { String userActive = readUserActive(); Time time = new Time(); time.setToNow(); String str_date = time.format("%Y-%m-%d"); String str_time = time.format("%H:%M:%S"); strCommandHeader = userActive + ";" + str_date + ";" + str_time + ';' + "VIEWLOG;"; strCommandData = "#"; Toast.makeText(v.getContext(), "Vui lòng áp điện thoại vào cửa để tải logfile!", Toast.LENGTH_LONG).show(); } }); } @Override publicvoid onNdefPushComplete(NfcEvent arg0) { } @Override public NdefMessage createNdefMessage(NfcEvent event) { Time time = new Time(); time.setToNow(); NdefMessage msg = new NdefMessage( new NdefRecord[] { createMimeRecord(strCommandHeader, strCommandData.getBytes())}); return msg; } 75 public NdefRecord createMimeRecord(String mimeType, byte[] payload) { byte[] mimeBytes = mimeType.getBytes(Charset.forName("US-ASCII")); NdefRecord mimeRecord = new NdefRecord(NdefRecord.TNF_MIME_MEDIA, mimeBytes, newbyte[0], payload); return mimeRecord; } @Override publicboolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); returntrue; } @Override publicboolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_addUser) { if(strUserActive.equals("MasterAdmin") strUserActive.equals("Admin")) { Intent intent = new Intent(this, AddUser.class); this.startActivity(intent); || returntrue; } else { Toast.makeText(this, "Bạn khơng có đủ quyền tạo account mới!", Toast.LENGTH_LONG).show(); returnfalse; } } elseif (id == R.id.action_changePW) { this.startActivity(intent); 76 returntrue; } elseif (id == R.id.action_about) { this.startActivity(intent); returntrue; } returnsuper.onOptionsItemSelected(item); } publicstatic String readUserActiveName () { String strConfig strHex2strAscii(readConfigFile(FILE_CONFIG).toString()); String[] parts = strConfig.split(";"); String strEnableAutoLogin = null; String strUserActive = null; String strUserActive_username = null; String strUserActive_password = null; = if(parts.length > 1) { strEnableAutoLogin = parts[0]; strUserActive = parts[1]; parts = strUserActive.split(":"); if(parts.length == 2) { strUserActive_username = parts[0]; strUserActive_password = parts[1]; } } return strUserActive_username; } publicstatic String readUserActive () { 77 String strConfig strHex2strAscii(readConfigFile(FILE_CONFIG).toString()); String[] parts = strConfig.split(";"); String strEnableAutoLogin = null; String strUserActive = null; String strUserActive_username = null; String strUserActive_password = null; = if(parts.length > 1) { strEnableAutoLogin = parts[0]; strUserActive = parts[1]; } return strUserActive; } publicstaticvoid writeDataConfig(String fileName, String data) { String path = FILE_PATH + "/" + fileName; String result = data; try { OutputStreamWriter writer = new OutputStreamWriter( new FileOutputStream(path)); writer.write(result); writer.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } publicstatic String readConfigFile(String fileName) { String path = FILE_PATH; File file = new File(path, fileName); if (!file.exists()) { return ""; } else { StringBuilder text = new StringBuilder(); try { 78 BufferedReader br = new BufferedReader(new FileReader(file)); String line; while ((line = br.readLine()) != null) { text.append(line); } br.close(); } catch (IOException e) { } return text.toString(); } } publicstatic String strAscii2strHex(String strdata) { StringBuilder sb = new StringBuilder(strdata.length() * 2); for(int i=0; i