2010-06-16 41 views
32

Tôi đang phát triển một ứng dụng rất có thể sẽ được cài đặt sẵn trên thiết bị. Nó cũng sẽ có sẵn trên Google Play. Có cách nào để cập nhật các trường hợp đó không được tải xuống thông qua Google Play hay không, vì Google Play sẽ không thông báo cho người dùng về bản cập nhật.Có cách nào để tự động cập nhật ứng dụng trên Android không?

Tôi đã suy nghĩ về, như suggested here, cố gắng liên hệ trang web của tôi theo định kỳ và khi có bản cập nhật, hãy tải xuống.

Có cách nào để tự động cập nhật bản cập nhật này hay thậm chí là âm thầm để người dùng không phải làm bất cứ điều gì (như chạy gói theo cách thủ công). Hoặc, khi trang web của tôi hiển thị bản cập nhật có sẵn, để cung cấp cho người dùng cập nhật thông qua Google Play, mặc dù nó không được cài đặt thông qua Market (EDIT: Tùy chọn phát Google này sẽ thích hợp hơn vì người dùng không phải kiểm tra "cho phép cài đặt nguồn phi thị trường ".)

+1

được cài đặt sẵn trên thiết bị như thế nào? –

+0

Được cài đặt sẵn bằng cách làm việc cho hoặc với nhà cung cấp thiết bị hoặc nhà cung cấp dịch vụ, có lẽ. –

+1

Vâng, rất có thể, nhưng nếu nó ở trong môi trường công ty hoặc một cái gì đó như thế, một tùy chọn sẽ được cài đặt ban đầu bằng cách tải xuống từ thị trường, thay vì phải đóng vai trò cập nhật của riêng bạn. –

Trả lời

41

tôi đã gặp vấn đề tương tự, bây giờ tôi kiểm tra ở đầu ứng dụng của tôi nếu có phiên bản mới trong xml cấu hình của tôi.

tôi so sánh các phiên bản thực tế với tag "< APP_VERSION> 1.1 </APP_VERSION>" của configuration.xml tôi nếu nó thấp hơn tôi hỏi với một tuỳ chỉnh AlertDialog nếu người dùng tiến hành nâng cấp

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse(myapk_link)); 
startActivity(intent);  

sau khi tải xuống người dùng phải chạy gói theo cách thủ công.

nếu bạn chọn cập nhật từ việc sử dụng thị trường Android:

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://details?id=com.package.name")); 
startActivity(intent); 

com.package.name phải là "gói" của ứng dụng của bạn

hoặc

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://search?q=" + APP_NAME)); 
startActivity(intent); 
+0

Đó là khá nhiều những gì tôi đã có trong tâm trí của tôi. Vẫn còn hơi phức tạp đối với người dùng ... Cảm ơn – Levara

+5

Bạn đã so sánh như thế nào với phiên bản GooglePlay. Người đàn ông Nó sẽ được đánh giá cao –

+1

Những gì tôi làm là để có phiên bản mới nhất trên internet, ví dụ yourdomain.com/lastversion.txt. Khi ứng dụng bắt đầu nó thực hiện một http có được đến url, nơi phiên bản mới nhất được viết xuống và so sánh với phiên bản ứng dụng, nếu phiên bản từ xa cao hơn thì tôi khởi động ý định. Vì vậy, sau khi phiên bản của bạn được phê duyệt từ Google play, tôi cập nhật nội dung yourdomain.com/lastversion.txt với phiên bản mới phát hành. –

0

Bạn không thể tự động cài đặt hoặc nâng cấp gói. Chỉ Android Market mới có khả năng thực hiện điều này (tức là nó tự cập nhật bản thân). Bạn có thể tải xuống gói và kích hoạt Intent để cài đặt, nhưng người dùng sẽ phải bật tùy chọn "Cho phép ứng dụng phi thị trường" và họ vẫn sẽ phải phê duyệt cài đặt/nâng cấp theo cách thủ công.

Một nơi để có thể điều tra là cách Google Maps thực hiện điều đó. Điều này thường được cài đặt sẵn, nhưng dường như luôn được hiển thị dưới dạng bản cập nhật trong ứng dụng Android Market, tôi tin. Cho dù có một lá cờ đặc biệt trong packages.xml hoặc tệp kê khai, tôi không biết.

+0

Cảm ơn, tôi sẽ cố gắng điều tra điều đó. – Levara

4

Tôi đang phát triển ứng dụng rất có thể sẽ được cài đặt sẵn trên các thiết bị .

Sau đó, bạn cần nói chuyện với nhà sản xuất thiết bị và đặt câu hỏi cho họ. Không ai khác sẽ có thể cho bạn biết những gì là và không thể, cho thiết bị của họ và các tàu sân bay (s) sẽ phân phối nó. Câu trả lời sẽ phụ thuộc rất nhiều vào cách họ tạo phần mềm của họ, cho dù ứng dụng của bạn sẽ là một phần của chương trình cơ sở hay "cài đặt" như một ứng dụng bình thường, sắp xếp của họ với nhà cung cấp dịch vụ là vis vis firmware updates, v.v. thậm chí có được một phiếu bầu trong vấn đề này.

+3

"Bạn thậm chí có thể không nhận được phiếu bầu trong vấn đề này". Tôi không ... Đó là lý do tại sao tôi đang tìm kiếm một cách khác ...: P – Levara

+0

Có thể bạn có thể cập nhật câu trả lời và trỏ đến cwac-updater – rds

+0

@CommonsWar chúng tôi có thể tự động cập nhật ứng dụng lanucher từ google play ? Tôi đang gặp sự cố http://stackoverflow.com/questions/39504146/google-play-auto-update-does-not-update-apps#39504146 – PankajAndroid

8

Chỉ cần tìm cách hoạt động. Hỏa ý Mục đích cho Thị trường tìm kiếm ứng dụng của tôi.

Được thử nghiệm với OpenIntent Newsreader vì nó rất dễ tìm thấy phiên bản cũ hơn .apk. Thị trường tìm thấy một ứng dụng và khi người dùng nhấp vào cài đặt, thay thế phiên bản cũ hơn bằng phiên bản từ Market. Tôi nghĩ rằng đó là giải pháp dễ dàng hơn cho người dùng hơn là tải xuống thủ công .apk và chạy nó.

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://search?q=" + APPLICATION_NAME)); 
startActivity(intent); 
+2

Và điều gì xảy ra nếu không có Market (tức là Google Apps) trên thiết bị? –

+0

Tất cả người dùng của tôi nên có Market được cài đặt. Tôi đoán, nếu không phải vậy, câu trả lời của Jorgesys là lựa chọn duy nhất. – Levara

1

Nếu ai kèm các ứng dụng trên thiết bị nào để một công việc thích hợp của nó, sau đó ứng dụng sẽ vẫn có một liên kết thị trường (thậm chí như một ứng dụng hệ thống) và thị trường sẽ nhắc nhở người dùng để nâng cấp nó nếu một mới phiên bản có sẵn. Sau khi tất cả, đó là chính xác những gì sẽ xảy ra với một ứng dụng như GMail được cài đặt sẵn trên điện thoại.

7

Có cách nào để cập nhật các trường hợp không được tải xuống thông qua Google Play, vì Google Play sẽ không thông báo cho người dùng về bản cập nhật.

Cũ câu hỏi, câu trả lời mới:

Sau khi đào bới trên chính xác cùng một câu hỏi (ứng dụng cài đặt sẵn trên thiết bị, làm sao tôi có thể cung cấp một bản cập nhật thông qua Google Play) Tôi tìm thấy thông tin này trên support.google.com *:

Google play có thể quản lý thông tin cập nhật cho các ứng dụng cài đặt sẵn, với điều kiện các điều kiện sau được đáp ứng:

  • ứng dụng tải sẵn cần được trong phân vùng hệ thống
  • Ứng dụng tải sẵn cần được tự do
  • Ứng dụng tải sẵn cần được ký hợp đồng với chữ ký giống như ứng dụng được xuất bản trong Google Play
  • Gói Tên của ứng dụng cài đặt sẵn và được cập nhật cần giống
  • phiên bản mã của ứng dụng được cập nhật cần được lớn hơn so với các ứng dụng cài đặt sẵn

* lúc 2015-04-13

+0

Kể từ ngày 10/10/13, một trong những yêu cầu là "Ứng dụng được tải sẵn cần được miễn phí". –

0

Có một dịch vụ tốt đẹp giúp ứng dụng của bạn tự cập nhật. Hãy xem https://www.pushlink.com

Trong sản phẩm này có chế độ NINJA cho phép thực hiện các cập nhật mà không cần tương tác của người dùng.

Đối với các "chế độ" khác, cho phép "Cài đặt ứng dụng phi thị trường" vẫn cần thiết. Nếu nó không được kích hoạt, quá trình cài đặt sẽ yêu cầu nó và chuyển hướng người dùng đến Cài đặt ứng dụng, và sau đó, người dùng có thể cài đặt ứng dụng.

+0

Bạn có thể dẫn tôi đến một số tài liệu hoặc một blog hoặc một cái gì đó về chế độ Ninja này, vì vậy tôi có thể đào nó nhiều hơn? Cảm ơn bạn. – yahya

+1

tôi nghĩ rằng bạn nên chỉ ra rằng https://www.pushlink.com là một giải pháp trả tiền – hyena

+0

Và một trong những đắt tiền ở đó! 5000 lượt cài đặt là 1250 một tháng và sẽ tăng * lên *. Kinda thái quá, nhưng nếu bạn là một công ty ngớ ngẩn thì ok. Mục tiêu có lẽ là một cơ sở nhỏ được cài đặt của một ứng dụng riêng tư. –

0

Có thể hoàn toàn tự động cập nhật ứng dụng, nếu bạn có thể đăng ký ứng dụng dưới dạng ứng dụng hệ thống. Chúng tôi đã viết một ứng dụng cho phần cứng cụ thể, chúng tôi đã tạo một ứng dụng cập nhật mà nhà sản xuất đã ký cho chúng tôi. Ứng dụng cập nhật chạy khi khởi động thiết bị, kiểm tra phiên bản hiện tại của ứng dụng và phiên bản mới và cài đặt phiên bản mới nếu cần.

Trường hợp sử dụng sẽ là ứng dụng kiosk, trên máy tính bảng của một sản phẩm và kiểu máy, không có Google Play.

Các vấn đề liên quan