Tải bản đầy đủ (.docx) (24 trang)

Nghiên cứu, phát triển phần mềm quản lý cuộc gọi trên nền Android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.2 MB, 24 trang )

Bản báo cáo đề tài nghiên cứu sinh viên

Đề tài: Nghiên cứu, phát triển phần mềm quản lý cuộc gọi trên nền Android
∼∼∼Phụ lục∼∼∼
5 phần
Phần 1: Đặt vấn đề nghiên cứu 2
1. Lý do nghiên cứu đề tài 2
2. Ý nghĩa trong chuyên ngành 3
Phần 2: Mục tiêu - chức năng sản phẩm 3
1. Mục tiêu – yêu cầu 3
2. Sơ đồ chức năng 4
Phần 3: Công cụ - kiến thức cần thiết 4
1. Kiến thức – cơ sở lý thuyết 4
2. Công cụ lập trình 5
Phần 4: Phát triển ứng dụng 5
A. Tìm hiểu về ứng dụng Android 5
B. Hướng dẫn lập trình 7
1. Viết ứng dụng đầu tiên 7
2. Quy ước lập trình 11
3. Lập trình ứng dụng 12
C. Phát triển ứng dụng quản lý cuộc gọi 18
1. Nhắn tin 18
2. Cuộc gọi 20
Một số hình ảnh về ứng dụng 21
Phần 5: Tổng kết đề tài nghiên cứu 23
1. Kết quả thu được 23
2. Phương hướng phát triển 23
Phần 1: Đặt vấn đề nghiên cứu
1. Lý do nghiên cứu đề tài
Điện thoại smartphone đang ngày càng trở nên phổ biến tại Việt Nam. Theo thống kê của
Google vào cuối quý II/ 2013, Việt Nam có hơn 17 triệu smartphone, tức là cứ khoảng 5 người sẽ


sở hữu chung 1 chiếc điện thoại thông minh và số lượng này còn sẽ tăng nhanh chóng trong thời
gian sắp tới. Giá smartphone ngày càng rẻ, đặc biệt ở những thị trường mới nổi là lý do khách
hàng những các quốc gia này bỏ điện thoại chức năng để mua chiếc smartphone đầu tiên. Tuy
nhiên:
Thứ nhất, việc chuyển lần đầu từ điện thoại chức năng sang smartphone sẽ khiến người dung
cảm thấy khó khăn và mất thời gian dài để làm quen với những chức năng mới trên chiếc điện
thoại của mình. Điều này gây khó khăn đến trải nghiệm của người dùng, đặc biệt với những
người ít tiếp xúc với công nghệ và những người từ độ tuổi trung niên.
Thứ hai, thị phần android chiếm 70% số điện thoại bán ra thị trường nhưng chính android lại
có sự phân mảng rất lớn, đồng thời, do là hệ điều hành mở nên mỗi nhà sản suất đều có sự tùy
biến nhất định lên mỗi sản phẩm của mình nên bản rom gốc hay bản rom của các nhà sản xuất
khác đều không tương thích và không thể cài lên máy của hãng sản xuất ban đầu được. Hệ quả là
cùng smartphone android nhưng dùng bản cũ thì có cách sắp xếp thế này nhưng bản mới lại có
cách sắp xếp khác, và giao diện của hãng Samsung sẽ khác với Lenovo, Acer hay Oppo,…làm
người dùng không thể khai thác hết thong tin từ điện thoại nếu không thực sự tìm hiểu về nó. Ví
dụ như những thông tin về tin nhắn được để chỗ này, thông tin về sim lại ở chỗ kia, thông tin về
cuộc gọi lại ở chỗ nọ,…dù đây là những thứ được người dùng sử dụng nhiều nhất (vì suy cho
cùng không phải ai mua điện thoại cũng để chụp ảnh tung lên facebook, để dùng điện thoại thay
gương soi và để chơi game cả, bởi chức năng chính của một chiếc điện thoại là để gọi và nghe)
Thứ ba, với những chiếc điện thoại xách tay, việc không hỗ trợ Tiếng Việt là điều phổ biến, gây
ảnh hưởng tới trải nghiệm của người dùng không thông thạo ngoại ngữ.
Trong số các chức năng của điện thoại, quản lý cuộc gọi là chức năng quan trọng và là yếu tố
cần thiết với tất cả người sử dụng. Để làm đơn giản quá trình tương tác giữa người sử dụng Việt
Nam với thiết bị của mình chính là nguyên nhân chính dẫn tới sự ra đời của đề tài nghiên cứu,
phát triển phần mềm quản lý cuộc gọi trên android.
2. Ý nghĩa trong chuyên ngành
Nghiên cứu về android là nghiên cứu về một chương trình lập trình hướng đối tượng, đây chính
là một trong những hành trang quan trọng với sinh viên khoa điện điện tử nói chung và tự động
hóa nói riêng để có thể hiểu rõ hơn về lập trình và thiết kế giao diện tương tác với người sử dụng
trong các sản phẩm tự động hóa của mình

Ứng dụng hiểu biết về android thiết kế các sản phẩm có khả năng điều khiển từ xa từ chính
những thiết bị smartphone – thứ ngày càng phổ biến ở Việt Nam, qua đó tăng tính linh động và
hiệu quả cho người sử dụng. Chẳng hạn ta có thể ngồi uống trà đá ở Hà Nội nhưng chỉ cần bấm
vài phím thì điện thoại sẽ nhắn tin tới sim 900a tích hợp trong hệ thống của ta thì có thể vận hành
Ứng dụng Android
Tin nhắn
Nhắn tin
Quản lý dữ liệu
Nhắn bằng bluetooth
Cuộc gọi
Gọi
Chặn cuộc gọi
Quản lý dữ liệu
Tính tiền cước
Giả cuộc gọi đến
Tiện ích
Kiểm tra thông tin SIM
Trò chơi
được hệ thống xử lý rác thải bệnh viện ở trên Thái Nguyên (Tất nhiên phải có quá trình mã hóa
thông tin vì không ai mong muốn một cô bán nước vỉa hè có thể táy máy nghịch hệ thống triệu
đô đó). Hay có thể sử dụng kết nối Bluetooth để điều khiển một chiếc máy bay mô hình từ chính
chiếc smartphone của chúng ta.
Phần 2: Mục tiêu – Chức năng chính của sản phẩm
1. Mục tiêu – yêu cầu
Mục tiêu: Thiết kế ra một ứng dụng:
- Chạy trên nền android
- Thực hiện các chức năng liên quan cuộc gọi
- Thực hiện các chức năng liên quan tin nhắn
Yêu cầu: ứng dụng có:
- Dung lượng nhỏ

- Hỗ trợ Tiếng việt cho người sử dụng
- Dễ sử dụng
2. Sơ đồ chức năng có trong ứng dụng
Phần 3: Công cụ - kiến thức cần thiết
1. Kiến thức và các cơ sở lý thuyết
a. Lập trình java
- Java (đọc như "Gia-va") là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP). Khác với phần lớn
ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy,
Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime
environment) chạy. Bằng cách này, Java thường chạy chậm hơn những ngôn ngữ lập trình thông dịch khác như C+
+, Python, Perl, PHP, C#
- Cú pháp Java được vay mượn nhiều từ C & C++ nhưng có cú pháp hướng đối tượng đơn giản hơn và ít tính năng
xử lý cấp thấp hơn. Do đó việc viết một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn.
Dùng bộ thư viện chuẩn KFC, nhiều đoạn code Java chỉ mất vài dòng trong khi C phải mất cả trang giấy. Lập trình
C rất hay xảy ra lỗi và khó sửa. Trong Java, hiện tượng dò rỉ bộ nhớ hoàn toàn có thể tránh bằng cách định nghĩa vài
preprocessor directives như #define NO_MEMORY_LEAK hay #define NO_ACCESS_VIOLATION ở đầu chương
trình.
b. Lập trình android
- Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình
cảm ứng như điện thoại thông minh và máy tính bảng. Ban đầu, Android được phát triển bởi Tổng công ty Android,
với sự hỗ trợ tài chính từ Google và sau này được chính Google mua lại vào năm 2005. Android ra mắt vào năm
2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: một hiệp hội gồm các công ty phần cứng, phần
mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho các thiết bị di động. Chiếc điện thoại đầu tiên
chạy Android được bán vào tháng 10 năm 2008.
- Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép Apache. Chính mã nguồn mở cùng với
một giấy phép không có nhiều ràng buộc đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình
viên nhiệt huyết được điều chỉnh và phân phối Android một cách tự do. Ngoài ra, Android còn có một cộng đồng
lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng của thiết bị, bằng một loại ngôn ngữ lập
trình Java có sửa đổi. Vào tháng 10 năm 2012, có khoảng 700.000 ứng dụng trên Android, và số lượt tải ứng dụng
từ Google Play, cửa hàng ứng dụng chính của Android, ước tính khoảng 25 tỷ lượt.

c. API thực hiện các chức năng quản lý cuộc gọi
- Một giao diện lập trình ứng dụng (tiếng anh Application Programming Interface hay API) là một giao
diện mà một hệ thống máy tính hay ứng dụng cung cấp để cho phép các yêu cầu dịch vụ có thể được tạo
ra từ các chương trình máy tính khác, và/hoặc cho phép dữ liệu có thể được trao đổi qua lại giữa chúng.
Chẳng hạn, một chương trình máy tính có thể (và thường là phải) dùng các hàm API của hệ điều hành để
xin cấp phát bộ nhớ và truy xuất tập tin.
- Nhiều loại hệ thống và ứng dụng hiện thực API, như các hệ thống đồ họa, cơ sở dữ liệu, mạng, dịch vụ
web, và ngay cả một số trò chơi máy tính. Đây là phần mềm hệ thống cung cấp đầy đủ các chức năng và
các tài nguyên mà các lập trình viên có thể rút ra từ đó để tạo nên các tính năng giao tiếp người- máy như:
các trình đơn kéo xuống, tên lệnh, hộp hội thoại, lệnh bàn phím và các cửa sổ. Một trình ứng dụng có thể
sử dụng nó để yêu cầu và thi hành các dịch vụ cấp thấp do hệ điều hành của máy tính thực hiện. Hệ giao
tiếp lập trình ứng dụng giúp ích rất nhiều cho người sử dụng vì nó cho phép tiết kiệm được nhiều thời
gian tìm hiểu các chương trình mới, do đó khích lệ mọi người dùng nhiều ứng dụng hơn.
2. Công cụ lập trình
a. Net Bean IDE
- NetBean IDE là “môi trường phát triển tích hợp“ (Integrated Development Environment) cần có để lập trình cho
nhiều ngôn ngữ
- NetBean IDE hỗ trợ nhiều hệ điều hành như Windows, Mac, Linux, và Solaris. NetBean bao gồm một IDE mã
nguồn mở và một nền tảng ứng dụng cho phép tạo các ứng dụng cho web, doanh nghiệp, desktop và thiết bị di động
bằng các ngôn ngữ lập trình Java, C/C++, JavaScript, Ruby, Groovy, và PHP.
b. Eclipse IDE
- Eclipse là một môi trường phát triển tích hợp cho Java, được phát triển ban đầu bởi IBM, và hiện nay bởi tổ chức
Eclipse. Ngoài Java, Eclipse còn hỗ trợ nhiều ngôn ngữ lập trình khác như PHP, C, C+
+, C#, Python, HTML, XML, JavaScript khi dùng thêm trình bổ sung (plug-in).
c. Một số phần mềm khác
- Software Development Kit
- Android Development Tools (ADT) plugin
- Java se development kit
Phần 4: Phát triển ứng dụng
A. Tìm hiểu về ứng dụng Android

1. Những khái niệm đầu tiên
a. Applications (Ứng dụng)
- Mỗi khi bạn chọn cài đặt ứng dụng trên google play, bạn luôn phải đợi google play tải một tập tin có
đuôi .apk về máy, tập tin đó chính là ứng dụng. Hiểu đơn giản, mỗi khi ta làm xong một dự án android
nào đó nó sẽ được đóng gói thành tập tin apk và tập tin này gọi là một ứng dụng
- Có hai loại ứng dụng mà ta cần quan tâm, đó là ứng dụng hệ thống và ứng dụng thường. Ứng dụng hệ
thống là những ứng dụng được cài đặt sẵn trong máy trước khi đến tay người dùng (có thể từ google hoặc
nhà sản xuất điện thoại), những ứng dụng này có khả năng truy cập rất sâu và có những quyền mà những
ứng dụng thường không được phép có như khóa máy vĩnh viễn,… Ứng dụng thường là những ứng dụng
do bên thứ 3 viết ra cung cấp đến tay người dùng. Tuy nhiên hiện nay, việc ROOT máy đem lại quyền
Super User cho người dùng khiến cho hai loại ứng dụng này cũng không còn trở nên quá khác biệt.
b. Activities (Hoạt động)
- Một hoạt động hoàn chỉnh gồm có hai phần là giao diện hoạt động và tệp nguồn.Thường thì chúng
luôn đi đôi với nhau nhưng trong 1 số trường hợp ta chỉ cần một trong hai là đủ.
- Trong một ứng dụng có ít nhất một hoặc nhiều giao diện hoạt động, nó là nơi tương tác giữa người sử
dụng với ứng dụng, các giao diện này có trách nhiệm cung cấp giới hạn những hành vi tới người dùng để
họ ra lệnh cho ứng dụng hoạt động theo mong muốn.
- Từ đây, ta gọi tắt giao diện hoạt động là giao diện cho ngắn gọn.
c. Intent
- Là một đối tượng cung cấp ràng buộc giữa các thành phần riêng biệt (thường gặp là giữa hai hoạt
động) trong lập trình android các Intent được dùng chủ yếu để bắt đầu một hoạt động mới từ hoạt động
cũ.
d. Activity stack (Ngăn xếp hoạt động)
- Nguyên tắc hoạt động của các hoạt động dựa trên nguyên tắc của ngăn xếp: LIFO (last in first out-
vào sau ra trước)
- Các sự kiện onPause, onResume,onStop gọi là vòng đời trạng thái
+ Nếu ta mở một hoạt động mới lên che khuất toàn bộ hoạt động cũ (không thấy hoạt động cũ nữa) thì
sẽ xảy ra sự kiện onPause (Tạm ngưng, có thể quay lại hoạt động này ngay lập tức) rồi onStop (Dừng,
không thể quay lại hoạt động này ngay) với hoạt động cũ.
+ Nếu ta mở hoạt động mới lên nhưng nó không che khuất hoạt động cũ (vẫn thấy hoạt động cũ) thì sẽ

xảy ra sự kiện onPause với hoạt động cũ.
+ Muốn quay trở lại hoạt động cũ, ta phải dùng tới sự kiện onResume để phục hồi trạng thái cho hoạt
động.
B. Hướng dẫn lập trình
1. Viết ứng dụng đầu tiên
- Để tìm hiểu về một ngôn ngữ lập trình theo tôi thì không gì hay bằng tự viết một chương trình đầu
tiên và xem cách nó hoạt động như thế nào thì sẽ trực quan hơn nhiều
- Trước tiên, chúng ta phải có bộ công cụ lập trình có thể được tải ở trang sau:
/> - Mở eclipse, chọn file->new->other
- Khi nhấp vào other hiện ra khung như ở dưới, ta chọn android application project
- Sau đó, ta tiến hành nhập các thông tin cho dự án, chú ý rằng:
+ Minimum required sdk: phiên bản thấp nhất có thể chạy ứng dụng
+ TargetSDK: phiên bản hiện tại của ứng dụng
- Đến đây bạn cứ nhấn next đến khi xuất hiện finish thì chọn finish thì sẽ có dự án đầu tiên của mình
- Chúng ta xem qua về cấu trúc cây thư mục của một dự án ứng dụng android và chú ý tới 1 số tệp và
thư mục:
+ Androidmanifest.xml: mô tả các đặc điểm cơ bản của các ứng dụng và xác định mỗi thành phần
của nó. Ta sẽ chú ý đến cách cấp phép cho một ứng dụng trong androidmanifest ở phần sau.
+ scr: thư mục chứa các tệp nguồn của ứng dụng, là nơi ta lập trình xử lý các dữ liệu mà người dùng
tương tác với giao diện tạo ra
+ res: thư mục chứa các tài nguyên liên quan đến giao diện, ta chú ý tới layout là nơi chứa tệp liên
quan đến giao diện và values là nơi chứa các tệp về kích thước, màu sắc, string mà ta đã khai báo trong
giao diện
- Bạn đừng sợ sẽ phải lập trình gì vội, vì giờ tôi sẽ hướng dẫn bạn đóng gói dự án của bạn luôn. Nhấp
chuột phải vào ứng dụng của bạn trên thanh package explorer->export:
- Hộp thoại export hiện ra, chọn export android application->next->next:
- Chọn create new keystore->mục location tìm đường dẫn rồi tạo một tệp tên bất kỳ như hình vẽ, điền
password rồi nhập lại password vào ô confirm->next
- Hoàn thành đầy đủ các thông tin->next
- Chọn nơi chứa file apk->finish, xong, bạn đã tạo được file apk đầu tiên

- Đến đây ta cài file apk vào điện thoại và chạy ứng dụng này, ứng dụng sẽ chạy, bật giao diện gốc lên
thì giao diện mặc định sẽ tải layout mặc định và sẽ hiện lên dòng chữ “hello world”, kết quả này không
mấy hấp dẫn lắm nhưng giờ bạn đã biết làm sao để chạy và tạo chương trình của bạn rồi.
2. Quy ước lập trình
- Để mọi thứ trở nên đơn giản, chúng ta sẽ tiến hành lập trình theo trình tự sau:
+ Bước một: chúng ta sẽ lập trình giao diện cho ứng dụng trong thư mục res/layout/ . Từ sau mỗi khi
nói lập trình giao diện hay tệp giao diện cũng tức là viết, mở tệp *.xml trong đường dẫn res/layout/*xml
+ Bước hai: chúng ta lập trình tệp nguồn xử lý các dữ liệu mà người dùng tương tác với giao diện tạo
ra trong thư mục scr/tên package/. Từ sau mỗi khi nói lập trình tệp nguồn hay mở tệp nguồn cũng tức là
viết, mở tệp *.java trong đường dẫn scr/tên package/*.java. Đây chính là bộ phận quan trọng nhất của một
chương trình.
+ Bước ba: chúng ta cấp phép cho ứng dụng, đảm bảo các cấp phép luôn đầy đủ giúp ứng dụng hoạt
động đúng với mục đích và khả năng của nó. Từ sau mỗi khi nói cấp phép cho ứng dụng cũng tức là viết
vào tệp AndroidManifest.xml trong đường dẫn bin/AndroidManifest.xml và tệp AndroidManifest.xml ở
ngay bên ngoài của cây thư mục (khoanh tròn trong hình dưới đây), về nguyên nhân vì sao lại có tới 2 tệp
AndroidManifest.xml này thì tôi xin phép được không nhắc tới vì tôi cũng không biết tại sao lại như vậy,
chỉ biết là nếu không viết đồng thời vào hai tệp này thì sẽ không thể cấp phép cho ứng dụng được:
- Để dễ hình dung, lập trình giao diện cũng giống như là tạo ra một cơ thể người hoàn chỉnh, lập trình
tệp nguồn là não bộ của cơ thể đó và cấp phép cho ứng dụng là thẻ tác nghiệp của nó. Khi người này làm
việc, môi trường sẽ tác động tới anh ta, thông tin được đưa đến não để xử lý và hồi đáp lại thông qua các
hoạt động trong khuôn khổ phù hợp với nghề nghiệp được nêu ra trong thẻ tác nghiệp của anh ấy (nếu thẻ
tác nghiệp là nhà báo thì anh ta sẽ không thể làm nghề giáo viên được chẳng hạn vì luật pháp (hệ điều
hành android) không cho phép điều đó)
3. Lập trình ứng dụng
Ta tiếp tục tiến hành một ví dụ nữa, lần này chúng ta sẽ thật sự đi vào lập trình cho một ứng dụng
a. Lập trình giao diện
- Giao diện người dùng trong android được xây dựng bằng cách sử dụng một hệ thống các đối tượng
view và viewgroup. Các đối tượng view ví dụ như là các nút nhấn, các đoạn văn bản,… Các viewgroup là
các đối tượng vô hình chứa và xác định cách thức mà các view được xắp xếp, chẳng hạn như theo chiều
ngang hay dọc.

- Trong ví dụ lập trình giao diện này, ta sẽ tạo ra một bố trí trong tệp xml bao gồm một trường văn bản
và một nút, trong ví dụ lập trình tệp nguồn ta sẽ trả lời khi nút được nhấn bằng cách gửi nội dung của
trường văn bản sang một giao diện mới.
- Mở activity_main.xml từ đường dẫn res/layout/ rồi chọn tab activity_main.xml (bên cạnh tab
graphical layout)
- Nhìn vào các câu lệnh, ta để ý thấy dòng android:text=”@string/hello_world”,giờ thì chắc bạn hiểu vì
sao chương trình đầu tiên lại in ra dòng chữ hello world rồi. Tôi xin phân tích ngắn ngọn tiếp về các câu
lệnh này: RelativeLayout là một kiểu viewgroup và TextView là một kiểu view, các câu lệnh còn lại nhằm
xác định các yếu tố như dài, rộng,… cho các view, viewgroup này, chú ý khi viết lệnh ta phải chú ý các
view phải luôn nằm trong viewgroup nếu không chúng sẽ không thể hiện lên được.
- Bây giờ ta xóa TextView và tất cả các câu lệnh trong nó đồng thời thay RelativeLayout thành
LinearLayout (là một kiểu viewgroup khác, hay được sử dụng hơn) và thêm dòng lệnh
android:orientation=”horizontal” (xắp xếp các view theo chiều ngang), nếu không thích ta cũng có thể
thay bằng “vertical” (xắp xếp theo chiều dọc) kết quả như sau:
- Ta cũng làm quen với 2 yếu tố cần xác định của một viewgroup hay view đó là:
+ android:layout_width: xác định chiều rộng cho đối tượng
+ android:layout_height: xác định chiều cao cho đối tượng
- Và các kiểu thường dùng cho 2 yếu tố này là:
+ ”math_parent”: đối tượng sẽ tự động thay đổi phủ kín vùng trống
+ ”fill_parent”: đối tượng sẽ thay đổi phủ kín kích thước trống
+ ”wrap_content”: đối tượng sẽ thay đổi phù hợp với kích thước các đối tượng trong nó
- Tạo view kiểu EditText bên trong viewgroup vừa tạo, nó sẽ trông như thế này:
-
- Trong đó ta quan tâm tới:
+ ”android:id”:định nghĩa tên cho EditText, cũng giống như dấu vân tay vậy, không thể nào có 2 đối
tượng nào trùng tên nhau nên ta sẽ dùng tên của đối tượng này để gọi nó trong chương trình nguồn. Đừng
lo lắng có thể quên tên đối tượng vì chúng sẽ được tự động cập nhật và gọi từ R.java mà đã đề cập ở trên.
+ ”android:hint”:Kiểu EditText bạn thường gặp khi yêu cầu nhập mật khẩu hay địa chỉ yahoo, khi đó
ở ô nhập hay có dòng chữ “Enter your password” hay đại loại vậy nhưng khi ta bấm vào ô đó thì dòng
chữ đó lại biến mất, ở đây cũng tương tự như vậy.

- Đến đây bạn sẽ thấy chương trình báo lỗi như bên dưới, đừng lo lắng, nguyên nhân là vì bạn chưa
khai báo cho tài nguyên string mà bạn vừa nhập mà thôi, nếu không tin thì bạn hãy nhìn lại chương trình,
đoạn “@string/edit_message” đoạn lệnh @string buộc bạn phải khai báo cho nó trước khi sử dụng
edit_message:
- Ta khai báo như sau: vào res/values/strings.xml thêm một string mới tên edit_message kèm theo
dòng chữ mà bạn muốn hiện lên trước khi người dùng bấm vào edit text của bạn như hình dưới. Bạn lại
thấy dòng hello world chứ? Chương trình mặc định lúc đầu cũng khai báo dòng helloworld như tôi và bạn
vừa làm vậy:
- Bây giờ ta khai báo thêm một nút bấm, bạn hãy thử tự làm trước khi xem ví dụ của tôi dưới đây:
- Bây giờ bạn chọn graphical layout và hưởng thụ thành quả:
b. Lập trình tệp nguồn
- Chúng ta đã có một ứng dụng hiện một giao diện với một trường văn bản dạng editText và một nút
nhấn, bây giờ chúng ta sẽ thêm một số code lệnh mà sẽ mở ra một giao diện mới khi ta bấm vào nút nhấn.
- Để đáp lại sự kiện người dùng bấm vào nút nhấn, mở tệp giao diện và thêm vào bên trong yếu tố
<Button thuộc tính android:onClick như hình dưới đây:
- Giá trị “sendMessage” của thuộc tính android:onClick là tên của phương pháp trong giao diện của bạn
mà hệ thống sẽ gọi khi người dùng bấm vào nút nhấn.
- Mở tệp nguồn *.java trong src/tên package/*.java (ví dụ như lúc đầu ta tạo một dự án có package là
utc.tudonghoa và tạo 1 tệp nguồn có tên là MainActivity.java thì tệp nguồn sẽ nằm trong đường dẫn
src/utc/tudonghoa/MainActivity.java) ta sẽ thấy tệp nguồn mặc định khi ta chưa viết gì vào như hình
dưới:
- Thêm vào phương thức tương ứng như hình dưới:
- Bạn sẽ thấy lỗi xuất hiện thông báo view cant not be resolved to a type ,đừng lo lắng, bạn trỏ vào
dòng View bị gạch đỏ như hình vẽ dưới, android sẽ cung cấp một loạt các giải pháp để chữa lỗi này, trong
đó bạn chọn import ‘View’ (android.View) như hình vẽ dưới để thêm thư viện cho phương pháp mà bạn
dùng:
- Cũng từ nay về sau khi gặp lỗi mà trong những cách sửa mà eclipse cung cấp có cách Import thư viện
thì bạn hãy chọn cách này vì điều đó có nghĩa là bạn thiếu thư viện, tuyệt đối không chọn những cách
khác.
- Bây giờ chúng ta sẽ tạo một Intent (để biết Intent là gì xin mời xem lại mục những khái niệm

android). Trong chương trình con sendMessage() tạo Intent để bắt đầu một giao diện mới tên là
LaDanOng ThatTuyet như hình dưới:
- Sẽ lại có lỗi, đương nhiên vì bạn chưa tạo ra hoạt động mới tên là LaDanOngThatTuyet, giờ ta vào
file->new->other và chọn Android Activity->next rồi đặt tên activity name là LaDanOngThatTuyet là
xong.
- Để cho vui, chúng ta sẽ không chỉ đơn thuần tạo một hoạt động mới mà sẽ cóp mẩu tin mà người
dùng nhập vào hộp EditText và đưa mẩu tin đó vào giao diện của hoạt động mới với cỡ chữ to hơn. Trước
tiên để lấy dữ liệu mẩu tin, ta thêm vào dòng lệnh sau
EditText editText = (EditText) findViewById(R.id.edit_message);//khai báo
địa chỉ của nơi chứa mẩu tin
String message = editText.getText().toString();//tạo biến String lấy giá
trị của view EditText mà người dùng đã nhập vào
intent.putExtra(EXTRA_MESSAGE, message);//Lấy biến String khai báo dưới
tên EXTRA_MESSAGE để dùng lại trong hoạt động mới
- Bạn sẽ được tệp nguồn như hình dưới
- Để hoạt động mới nhận được mẩu tin, ta thêm dòng lệnh sau
public final static String EXTRA_MESSAGE =
"com.example.myfirstapp.MESSAGE";
- Bây giờ ta sẽ bắt đầu một hoạt động mới với câu lệnh startActivity như hình dưới:
- Xong với hoạt động cũ, giờ ta chuyển sang tệp nguồn hoạt động mới tạo vừa nãy tên
LaDanOngThatTuyet và viết như sau:
Tin nhắn đến
Chương trình nhận biết tin nhắn đến
Chương trình Thông báo tin nhắn đến
- Bây giờ bạn có thể chạy ứng dụng và cũng tức là đã xong phần hướng dẫn của tôi.
C. Phát triển ứng dụng quản lý cuộc gọi
1. Nhắn tin
a. Thông báo tin nhắn đến
b. Gửi tin nhắn
Yêu cầu viết tin nhắn để gửi đi

Chương trình nhập tin nhắn
Chương trình nhập số điện thoại người nhận
Yêu cầu gửi tin nhắn
Chương trình gửi tin nhắn
Yêu cầu truy cập vào hòm thư tin nhắn
Chương trình truy cập vào hòm thư
Chương trình in ra màn hình danh sách tin nhắn trong hòm thư
c. Quản lý hộp thư tin nhắn
d. Nhắn tin qua bluetooth
Chương trình kiểm tra trạng thái bluetooth của thiết bị
Chưa bật → yêu cầu bật
Đã bật → sang chương trình sau
Chương trình yêu cầu kết nối với các thiết bị khác
Tìm kiếm các thiết bị xung quanh
Kết nối với thiết bị
Chương trình nhập tin nhắn
Chương trình gửi tin nhắn
Chương trình nhận biết tin nhắn tới
Chương trình in ra màn hình tin nhắn tới
Yêu cầu gọi đi
Chương trình thực hiện cuộc gọi
2. Cuộc gọi
a. Gọi đi
b. Kiểm tra nhật ký cuộc gọi và tính tiền
Yêu cầu kiểm tra nhật ký cuộc gọi
Chương trình truy cập vào nhật ký cuộc gọi
Chương trình tính tiền cuộc gọi
Chương trình in ra màn hình danh sách nhật ký cuộc gọi
Yêu cầu chặn cuộc gọi
Chương trình kiểm tra cuộc gọi tới

Chương trình chặn cuộc gọi tới
c. Chương trình chặn cuộc gọi
d. Chương trình giả cuộc gọi
Yêu cầu giả cuộc gọi
Chương trình đếm lùi cho tới thời gian hạn định giả cuộc gọi
Chương trình hiện ra màn hình hình ảnh + âm thanh như khi có cuộc
gọi thật gọi tới
(Chương trình và câu lệnh cụ thể cho từng yêu cầu nêu ở phía trên đã nằm trong tập tin đính kèm tài liệu
này hoặc các bạn có thể tải về từ trên mạng do nhóm tác giả chúng tôi đã tải lên trên đó tại địa chỉ:
(yêu cầu eclipse để chạy))
Một số hình ảnh từ ứng dụng:
Phần 5: Tổng kết đề tài nghiên cứu
1. Kết quả thu được
Tạo được sản phẩm chạy được cả trên giả lập và điện thoại android:
- Có thể chạy được trên nền android
- Gọi và nhận cuộc gọi; Quản lý các thông tin, dữ liệu cuộc gọi
- Nhắn tin và quản lý tin nhắn
- Kiểm tra thông tin Sim, tính tiền cước cuộc gọi
Chưa làm được:
- Nháy máy phá hoại số điện thoại bất kỳ
2. Phương hướng phát triển
- Tăng tính tùy biến cho ứng dụng
- Tối giản hóa dung lượng
- Tích hợp phần mềm chặn cuộc gọi và nhận thông tin về danh sách cuộc gọi, tin nhắn cho phụ
huynh quản lý điện thoại của con cái
- Bổ sung chức năng xóa tin nhắn đến trong hộp tin nhắn của điện thoại (vẫn lưu tin nhắn lại
trong bộ nhớ ứng dụng)
Bản báo cáo có tham khảo tài liệu từ các nguồn:
1. />2. />3. />4. />5.
Và một số tài liệu về android, java khác

×