Trang Chủ Xã hội Truyền thông Phát triển ứng dụng android: Làm thế nào để Bắt đầu với Vị trí - núm vú

Phát triển ứng dụng android: Làm thế nào để Bắt đầu với Vị trí - núm vú

Mục lục:

Video: Hướng dẫn tự tạo 1 Ứng dụng hoặc Games Android trên ĐT mà không cần biết lập trình & Code v.v 2025

Video: Hướng dẫn tự tạo 1 Ứng dụng hoặc Games Android trên ĐT mà không cần biết lập trình & Code v.v 2025
Anonim

Nhiều ứng dụng Android có thể mang lại lợi ích tốt đẹp cho người dùng của họ bằng cách đưa vị trí vào trải nghiệm người dùng của họ. Cho dù điều đó đơn giản như hiển thị cho người dùng vị trí của họ trên bản đồ hoặc phức tạp hơn như cung cấp thông báo nền dựa trên GPS, việc bổ sung các dịch vụ định vị cho ứng dụng của bạn thường là điều người dùng mong đợi.

Có nhiều cách bạn có thể thêm vị trí vào ứng dụng Android của mình. Trong Lollipop, một số phổ biến nhất là

  • Hiển thị thành phố hiện tại của người dùng hoặc địa chỉ đường phố. Đây được gọi là mã hóa địa lý ngược.

  • Tích cực theo dõi vị trí của người dùng, chẳng hạn như khi hiển thị vị trí của người dùng trên bản đồ.

  • Thiết lập tính địa lý để nhận thông báo khi người dùng đến hoặc rời khỏi vị trí.

  • Theo dõi vị trí của người dùng để thực hiện nhận biết hoạt động và xác định xem họ đang đi bộ, đi xe đạp hay lái xe.

  • Phát hiện xem một người sử dụng đang ở gần một iBeacon bằng cách sử dụng Bluetooth.

Bài viết này chỉ ra cho bạn một trong những cách sử dụng phổ biến nhất của vị trí, đó là để theo dõi vị trí của người dùng và hiển thị địa chỉ đường phố hiện tại của họ tới họ trong TextView.

Bạn cần làm bốn việc để thiết lập vị trí trong ứng dụng của mình:

  1. Cập nhật cấu hình xây dựng của bạn.

  2. Mở một kết nối với Google Play.

  3. Đăng ký cập nhật vị trí.

  4. Hiển thị địa chỉ của người dùng.

Cách cập nhật cấu hình xây dựng của bạn

Android có một bộ API vị trí cũ hơn được tích hợp vào hệ điều hành dưới Android. vị trí gói. Các API này không còn được duy trì, vì vậy bạn nên sử dụng API dịch vụ Google Play mới để lấy vị trí của người dùng thay thế.

Để thêm API vị trí của Dịch vụ Google Play vào dự án của bạn, đặt sự phụ thuộc sau vào trong bản xây dựng của bạn. config file:

phụ thuộc (biên dịch ' com. Google. android. gms: play-services-location: 6. 5. 87 ' }

Tiếp theo, thêm thông tin sau vào AndroidManifest của bạn. xml:

 " cho phép android ACCESS_COARSE_LOCATION " />  " cho phép android ACCESS_FINE_LOCATION " />  @ integer / google_play_services_version /> Sự cho phép ACCESS_COARSE_LOCATION sử dụng thông tin Wi-Fi và tháp di động, nếu có, để cung cấp cập nhật vị trí gần bằng kích thước của một khối thành phố. Quyền ACCESS_FINE_LOCATION có thể giúp bạn có được thông tin có độ phân giải cao hơn bằng GPS của điện thoại, nhưng tốn kém hơn mức tiêu thụ pin.Nếu ứng dụng của bạn chỉ cần vị trí thô, bạn có thể nghĩ rằng chỉ cần yêu cầu cấp phép ACCESS_COARSE_LOCATION, nhưng hầu hết các ứng dụng đều muốn cả hai quyền. Bạn thường phải yêu cầu cả hai quyền vì bạn sẽ sử dụng LocationProvider gọi là FusedLocationProvider, nó sẽ tự động chọn giữa Wi-Fi, tháp điện thoại di động và các nhà cung cấp vị trí GPS để cung cấp cho bạn độ chính xác tốt nhất với chi phí thấp nhất cho pin của bạn. Nếu bạn biết rằng bạn sẽ không bao giờ cần thông tin vị trí tốt, bạn có thể xem xét xóa quyền ACCESS_FINE_LOCATION, nhưng hãy lưu ý rằng ứng dụng của bạn có thể không hoạt động tốt ở những nơi không có tháp điện thoại di động hoặc truy cập Wi-Fi. Thẻ meta-data là cần thiết bất cứ khi nào bạn sử dụng thư viện Dịch vụ Google Play. Cách mở một kết nối đến Google Play Các API Vị trí khá đơn giản, nhưng để sử dụng chúng, bạn sẽ cần phải thiết lập API Dịch vụ của Google Play và những điều này phức tạp hơn một chút để sử dụng. Để thiết lập kết nối với Dịch vụ Google Play, hãy thêm đoạn mã sau vào hoạt động hoặc đoạn của bạn: // Ứng dụng Google API, cho các dịch vụ định vị GoogleApiClient googleApiClient; @ Xoá bỏ công khai void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); googleApiClient = new GoogleApiClient. Builder (getActivity ()). addConnectionCallbacks (này). addOnConnectionFailedListener (này). addApi (LocationServices, API). xây dựng(); …} @ Xoá bỏ void onStart () {super. băt đâu();

googleApiClient. kết nối();

} @Chuyển công khai void onStop () {

googleApiClient. ngắt kết nối ();

siêu. onStop ();}

Đoạn mã này tạo một đối tượng GoogleApiClient mới trong onCreate () của bạn để kết nối với Dịch vụ của Google Play, và sau đó nó cố gắng kết nối trong onStart () của bạn và ngắt kết nối trong onStop () của bạn. GoogleApiClient cần một đối tượng gọi lại mà nó có thể thông báo khi nào một kết nối đã được thiết lập, vì vậy bạn cần thêm callbacks vào hoạt động hoặc đoạn của bạn. Bạn có thể thêm callbacks vào TaskEditFragment để hoạt động bất kỳ của đoạn.

ConnectionCallbacks, OnConnectionFailedListener { @Override public void onConnected (Gói kết nốiHint) { // Kết nối với Google Play dịch vụ!

// Đây là nơi bạn sẽ bắt đầu hỏi vị trí

// cập nhật.
} @Override public void onConnectionSuspended (nguyên nhân int) { // Kết nối Google Play đã bị gián đoạn. // Vô hiệu hoá bất kỳ thành phần UI nào phụ thuộc vào Google // APIs cho đến khi được gọi onConnected (). // // Ví dụ này không ' t cần phải làm bất cứ điều gì ở đây. @Override public void onConnectionFailed (kết quả ConnectionResult) { // Hàm gọi lại này rất quan trọng để xử lý lỗi // có thể xảy ra khi cố kết nối với > / / Google. // // Nếu ứng dụng của bạn thắng ' t hoạt động bình thường mà không có vị trí // cập nhật, thì nó ' là quan trọng để xử lý kết nối / / lỗi chính xác.Xem // // developer. android. com / google / auth / api-client. html // để biết thêm thông tin về xử lý lỗi khi // kết nối với Google. // // Thông tin vị trí là tùy chọn cho ứng dụng này, do đó / / lỗi kết nối có thể được bỏ qua một cách an toàn ở đây. } } Xin chúc mừng! Bạn đã thiết lập đúng kết nối với Dịch vụ của Google Play sẽ tự động ngắt kết nối khi hoạt động hoặc đoạn của bạn bị dừng. Bước tiếp theo là yêu cầu cập nhật vị trí.

Cách đăng ký cập nhật vị trí Bạn đã trải qua phần khó khăn. Sau khi kết nối thành công với Dịch vụ Google Play, bạn có thể bắt đầu nghe bản cập nhật vị trí. Trước tiên bạn cần phải nói với API Vị trí một cách thường xuyên và mức độ chính xác bạn muốn cập nhật vị trí của mình. Nếu bạn phải hiển thị địa điểm hiện tại của người dùng đến họ trên bản đồ, có lẽ bạn sẽ muốn cập nhật rất chính xác và nhanh chóng, để người dùng có thể thấy được nơi họ đang di chuyển. Hầu hết các ứng dụng có thể cần cập nhật thường xuyên ít hơn, và đó là những gì bạn sẽ sử dụng trong ví dụ này. Thêm trường sau đây vào đoạn mã hoặc hoạt động của bạn: // LocationRequest xác định tần suất chúng ta cần vị trí // Cập nhật LocationRequest locationRequest = new LocationRequest (). setInterval (30000). setPriority (LocationRequest. PRIORITY_BALANCED_POWER_ACCURACY);
Vị trí này Yêu cầu được thiết lập để yêu cầu cập nhật vị trí mới xấp xỉ 30 giây và để cân bằng độ chính xác tốt với mức tiêu thụ năng lượng khá. Nếu bạn muốn tiêu thụ pin thấp hơn, hãy thử PRIORITY_LOW_POWER hoặc nếu bạn muốn độ chính xác cao hơn, hãy thử PRIORITY_HIGH_ACCURACY. Thậm chí bạn có thể sử dụng PRIORITY_NO_POWER cho các ứng dụng cập nhật rất ít trong nền và chỉ muốn sao chép lại các cập nhật vị trí mà các ứng dụng khác yêu cầu! Kiểm tra LocationRequest trên trang Nhà phát triển Android để biết thêm thông tin về các tùy chọn khác nhau mà bạn có thể sử dụng.

Để bắt đầu lắng nghe các bản cập nhật vị trí, thêm phần sau vào phương thức onConnected () mà bạn vừa tạo:

@Chuyển công khai void onConnected (Bundle connectionHint) {// Liên kết với các dịch vụ của Google Play! // Bắt đầu đăng ký để cập nhật vị trí

FusedLocationApi. requestLocationUpdates (

googleApiClient, locationRequest, điều này);

}

Yêu cầu FusedLocationApi bắt đầu gửi bản cập nhật vị trí ứng dụng của bạn bằng cách sử dụng LocationRequest mà bạn vừa cấu hình. Để nó hoạt động, tuy nhiên, bạn cần phải cung cấp một đối tượng gọi lại có thể nhận được cập nhật vị trí. Thêm giao diện LocationListener vào hoạt động hoặc đoạn của bạn, sau đó thêm phương thức onLocationChanged () như sau:

lớp công khai TaskEditFragment mở rộng Phần thực hiện Fragment ConnectionCallbacks, OnConnectionFailedListener,

com. Google. android. gms. vị trí. LocationListener

{

@Override public void onLocationChanged (vị trí vị trí cuối cùng) { Toast. makeText (getActivity (), location toString (), Toast. LENGTH_LONG). chỉ();

}}

Nhân đây, nếu bạn quan tâm đến vị trí hiện tại của người dùng và bạn không quan tâm đến việc cập nhật nó, hãy kiểm tra FusedLocationApi.getLastLocation (), loại bỏ sự cần thiết cho giao diện LocationListener. Bây giờ, nếu bạn chạy hoạt động của mình, bạn sẽ thấy thông báo Toast in ra vị trí hiện tại của người dùng. Tuy nhiên, có thể thấy GPS của họ không thực sự hữu ích cho người dùng, vì vậy hãy sử dụng vị trí của họ để tìm ra địa chỉ hiện tại của họ và hiển thị nó cho họ. Cách hiển thị địa chỉ của người dùng Android có một API được gọi là bộ mã hóa địa lý để tìm kiếm địa chỉ của người dùng từ tọa độ GPS của họ (và ngược lại). Nó khá đơn giản để sử dụng. Việc bắt duy nhất là bởi vì nó làm cho một yêu cầu mạng cho Google trên các chủ đề hiện tại, nó vào bạn để đảm bảo rằng bạn chỉ chạy nó trên chủ đề nền (để bạn không gây treo trên thread UI chính trên chậm mạng). Thêm đoạn mã sau vào hoạt động hoặc đoạn: Bộ mã hóa địa lý bằng địa lý; @ Xoá bỏ công khai void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); … geocoder = new Geocoder (getActivity ());} @Xóa bỏ khoảng trống công khai trên Vị tríChanged (Vị trí Vị trí cuối cùng) {/ / Hỏi google về địa chỉ của vị trí. / / Điều này có thể mất một thời gian, do đó, làm nó trong một AsyncTask. new AsyncTask () {@Gọi địa chỉ doInBackground bảo vệ địa chỉ được bảo vệ (Void [] params) {try {List addresses = geocoder. getFromLocation (vị trí getLatitude (), vị trí getLongitude (), 1); if (địa chỉ! = null && địa chỉ. size ()> 0) địa chỉ trả lại. nhận được (0);

} catch (IOException e) {

// bỏ qua

}

trả về null;

}

// Thực hiện trên thread UI

@Override

protected void onPostExecute (Address address) ( if (address! = Null) { Chuỗi s = địa chỉ. getThoroughfare (); if (s! = Null) Toast. makeText (getActivity (), s, Toast. LENGTH_LONG). chỉ(); } } }. thi hành(); } Mã này thêm trường Geocoder vào hoạt động hoặc đoạn của bạn, khởi tạo nó trong onCreate () và sau đó sử dụng nó trong onLocationChanged () để tìm địa chỉ cho vị trí hiện tại. Sau đó, nó sẽ hiển thị thông báo Toast với "đường cao tốc" cho địa chỉ, ví dụ: "600 West Chicago Avenue. "Đối tượng Address trả về bởi Geocoder rất phong phú với thông tin; hãy kiểm tra javadocs để biết chi tiết về những gì bạn có thể hiển thị.

Và với điều đó, bạn có tất cả mọi thứ bạn cần biết về đăng ký địa điểm hiện tại của người dùng từ trong hoạt động hoặc phân đoạn của Android.

Phát triển ứng dụng android: Làm thế nào để Bắt đầu với Vị trí - núm vú

Lựa chọn của người biên tập

Làm thế nào để trình bày các ngày trong các định dạng khác nhau trong R - núm vú

Làm thế nào để trình bày các ngày trong các định dạng khác nhau trong R - núm vú

Bạn có thể nhận thấy trong R như. Ngày () là mặc định theo mặc định: Nó dự kiến ​​ngày được định dạng theo thứ tự của năm, tháng, và ngày. May mắn thay, R cho phép bạn linh hoạt trong việc xác định định dạng ngày tháng. Bằng cách sử dụng đối số định dạng của. Date (), bạn có thể chuyển đổi bất kỳ định dạng ngày thành một đối tượng Date. ...

Làm thế nào để dự đoán các giá trị dữ liệu mới với R - núm vú

Làm thế nào để dự đoán các giá trị dữ liệu mới với R - núm vú

Ngoài mô tả các mối quan hệ, mô hình cũng có thể được sử dụng để dự đoán các giá trị cho dữ liệu mới. Cho rằng, nhiều hệ thống mô hình trong R sử dụng cùng một chức năng, được gọi là predict (). Mỗi mô hình hóa mô hình trong R có một hàm dự đoán với hương vị riêng của nó, nhưng nhìn chung các chức năng cơ bản cũng giống nhau cho tất cả chúng. ...

Lựa chọn của người biên tập

Làm thế nào để Gửi tin nhắn trực tiếp trên Twitter - núm vú

Làm thế nào để Gửi tin nhắn trực tiếp trên Twitter - núm vú

Tin nhắn trực tiếp (DMs) cho phép bạn gửi đi liên lạc với các ghi chú cá nhân thông qua Twitter. Giống như các tweet thường lệ và @replies, tin nhắn trực tiếp được giới hạn ở 140 ký tự. Không giống như các tweet thường dùng và @replies, người duy nhất có thể thấy một tin nhắn trực tiếp là người nhận. Bạn có thể gửi DM chỉ cho người dùng Twitter đang theo dõi bạn ...

Làm thế nào để tìm kiếm người trên Twitter - núm vú

Làm thế nào để tìm kiếm người trên Twitter - núm vú

Bạn có thể tìm kiếm người trên Twitter theo nhiều cách. Cách đơn giản nhất là sử dụng trường tìm kiếm - tìm biểu tượng kính lúp và các từ Search Twitter bên trong một hình bầu dục - hiện diện trong thanh điều hướng ở đầu mỗi trang Twitter. Chạy tìm kiếm của bạn bằng bất kỳ tên, từ khóa, ngành, tiêu đề và ...

Làm thế nào để Thiết lập tin nhắn văn bản Twitter (Giao hàng SMS) - núm vú

Làm thế nào để Thiết lập tin nhắn văn bản Twitter (Giao hàng SMS) - núm vú

Để Chọn tham gia để nhận Twitter thông qua tin nhắn văn bản (gửi SMS). Trước tiên, bạn phải thiết lập một thiết bị di động để Twitter biết nơi gửi Tweets của bạn. Để làm như vậy, hãy làm theo các bước sau: Nhấp vào biểu tượng bánh răng ở góc trên cùng bên phải của Twitter của bạn. com màn hình chính. Nhấp vào Cài đặt trong ...

Lựa chọn của người biên tập

Lợi ích sức khoẻ của Thiền - Thập kỷ

Lợi ích sức khoẻ của Thiền - Thập kỷ

Trong những năm 70 và 80 Thiền Siêu Việt và sự thư giãn- nghiên cứu đáp ứng các nghiên cứu khoa học về thiền định, và kết quả cho thấy những lợi ích đặc biệt của thiền định đối với một loạt các biện pháp sức khoẻ, từ huyết áp và mức cholesterol đến tuổi thọ và tần suất các chuyến thăm của bác sĩ. Dưới đây là một số ví dụ về một số kết quả nghiên cứu liên quan đến thiền định ...

Sĩ quan của freemason Lodge - những người có đầu

Sĩ quan của freemason Lodge - những người có đầu

Sĩ quan được các thành viên trong hội đồng bầu ra, mặc dù một số ít được Thầy tôn kính chỉ định. Trong hầu hết các nhà nghỉ, các nhân viên phục vụ ở vị trí của họ trong một năm. Tên và nhiệm vụ của các nhân viên hầu hết được lấy từ các phong tục tập quán cũ được thực hiện bởi các phường của các nhà đúc thời trung cổ, nơi có trí thông thái có nguồn gốc. Ở Anh ...

Bạn nên thiền định trong bao lâu? - núm vú

Bạn nên thiền định trong bao lâu? - núm vú

Bạn có thể thích thiền của mình ngắn và nhanh hoặc lâu và chậm. Nếu bạn không thể lập lịch trình nửa giờ, thì hãy thiền trong vài phút. Ngồi 5-10 phút mỗi ngày tốt hơn là ngồi hàng giờ một tuần một lần - mặc dù bạn có thể muốn làm cả hai. Đồng hồ báo thức kỹ thuật số ...