Làm cách nào để chỉ tự động cập nhật ứng dụng trong Play Store khi được cắm?


14

Tôi muốn các ứng dụng được cập nhật tự động khi điện thoại của tôi được cắm (sạc) và trên wifi. Tôi chỉ có thể dễ dàng cho phép tự động cập nhật khi bật wifi với tùy chọn phù hợp trong cài đặt Cửa hàng Play, nhưng không ngăn cập nhật tự động xảy ra nếu điện thoại chạy bằng pin.

Điều này gây ra hao pin không cần thiết khi tôi đang sử dụng điện thoại của mình ở wifi. Cho rằng các ứng dụng tự động cập nhật là một công việc daemon hơn là một nhiệm vụ quan trọng về thời gian, tôi không thể tin rằng đó không phải là một chiến lược tiết kiệm năng lượng tiêu chuẩn.

Bạn có biết bất kỳ ứng dụng hoặc giải pháp hệ thống nào (bao gồm cả nếu thiết bị đã được root) để đạt được điều này?

Câu trả lời:


4

Lưu ý :

Giải pháp sau:

  • được thử nghiệm trên Android 4.2.1, COS12 (Android 5.0.2) và CM12.1 (Android 5.1.1) - tất cả đều chạy Play Store v6.0.5 1
  • yêu cầu Android đã root
  • đây là một bản demo ngắn của giải pháp

Trong khi duyệt qua bảng kê khai của Play Store, tôi đã đoán được rằng chỉ có dịch vụ sau mới có khả năng là người khởi tạo tự động cập nhật ứng dụng qua Wi-Fi.

com.google.android.finsky.autoupdate.ReschedulerUsingAlarmManager$CheckWifiAndAutoUpdate

Tôi đã chơi với dịch vụ đó trong một số điều kiện trên các thiết bị khác nhau và thấy nó hữu ích cho mục tiêu đang đề cập. Không cần phải nói rằng cài đặt tự động cập nhật ứng dụng nên được đặt thành "Tự động cập nhật ứng dụng chỉ qua Wi-Fi" trong Play Store.

Dưới đây là những gì bạn có thể làm: Cài đặt ứng dụng có thể thực hiện một loạt các hành động khi nguồn điện và Wi-Fi được kết nối và sau đó, bị ngắt kết nối. Tôi đã sử dụng Tasker ( phiên bản dùng thử ; userguide ) làm ứng dụng tự động hóa.

Chúng ta sẽ cần hai nhiệm vụ: một nhiệm vụ nhập cảnh và một nhiệm vụ thoát. Xem câu trả lời của tôi ở đây để được giúp đỡ liên quan.

  • Nhập tác vụ : (Hành động):

    1. Mã → Chạy Shell

      • Chỉ huy:

        pm kích hoạt com.android.veinating / com.google.android.finsky.autoupdate.ReschedulerUsingAlarmManager \ $ CheckWifiAndAutoUpdate;
        đang buộc dừng com.android.veinating;
        đang bắt đầu dịch vụ com.android.veinating / com.google.android.finsky.autoupdate.ReschedulerUsingAlarmManager \ $ CheckWifiAndAutoUpdate
        
      • đánh dấu vào sử dụng Root
    2. Bạn có thể tùy chọn thêm một hoặc nhiều hành động để thông báo cho mình rằng quy trình cập nhật đã bắt đầu. Tôi đã sử dụng Thông báo → Flash để thông báo cho mình qua bánh mì nướng.
  • Nhiệm vụ thoát : (Hành động):

    Nhiệm vụ này yêu cầu các applet của Busybox được cài đặt. Xem Làm cách nào để cài đặt các công cụ dòng lệnh bị thiếu trên thiết bị Android? để được giúp đỡ liên quan.

    1. Mạng → Kiểm tra mạng

      • Loại: Dữ liệu di động được bật
      • Kết quả lưu trữ trong: %Mdata
    2. Mã → Chạy Shell

      • Chỉ huy:

        vô hiệu hóa dữ liệu svc;
        vô hiệu hóa wifi svc;
        đang buộc dừng com.android.veinating;
        đang dừng lực lượng com.android.providers.doads;
        down_path = $ (truy vấn nội dung --uri nội dung: // download / my_doads --projection _data --where "notifypackage = 'com.android.veinating'");
        [["$ down_path"! = "Không tìm thấy kết quả." ]] && echo $ down_path | sed 's /.*=// g' | xargs rm -f | | tiếng vang tiếp tục;
        xóa nội dung --uri nội dung: // download / my_doads --where "notifypackage = 'com.android.veinating'"
        pm vô hiệu hóa com.android.veinating / com.google.android.finsky.autoupdate.ReschedulerUsingAlarmManager \ $ CheckWifiAndAutoUpdate;
        cho phép wifi svc;
        [["% Mdata" == "có"]] && dữ liệu svc cho phép | | echo không làm gì cả;
        
      • đánh dấu vào sử dụng Root
    3. Một lần nữa, để thông báo cho chính mình, sử dụng bất kỳ hành động nào bạn chọn.

Những nhiệm vụ đó làm gì?

Khi các điều kiện cho cả hai bối cảnh được đáp ứng, tác vụ enter được chạy. Các lệnh trong tác vụ đó thực hiện những điều này theo thứ tự tuần tự:

  • cho phép dịch vụ của Play Store nói trên
  • buộc dừng cửa hàng Play
  • bắt đầu dịch vụ của Play Store

Và đó là tất cả để cập nhật tự động bắt đầu.

Sau khi được kích hoạt, bất cứ khi nào cấu hình tắt (đơn giản vì một điều kiện cho bối cảnh không gặp nữa), tác vụ thoát sẽ chạy. Nhiệm vụ thoát đó thực hiện các bước sau theo thứ tự tuần tự:

  • lưu trữ trạng thái (bật / tắt) dữ liệu di động trong một biến Mdata
  • công việc của những lệnh đó là:

    • vô hiệu hóa dữ liệu di động
    • tắt Wi-Fi
    • buộc dừng cửa hàng Play
    • buộc dừng tải xuống Trình quản lý

    Tôi nhận thấy rằng nếu một bản cập nhật (tải về cơ bản dở dang) cho một ứng dụng bị gián đoạn do không huy động đủ Wi-Fi, thanh tiến trình (thông báo) được miễn nhiệm, tình trạng của tiến bộ được lưu trữ trong một hàng trong bảng tải của cơ sở dữ liệu tải .db . (Cơ sở dữ liệu đó nằm trong thư mục dữ liệu của Trình quản lý tải xuống.) Hàng đó cũng chứa vị trí của tệp được tải xuống một phần.

    Để đảm bảo rằng cập nhật tự động không xảy ra trên kết nối thành công tiếp theo với Wi-Fi và đảm bảo rằng nó không bao giờ làm như vậy khi cấu hình không chạy tác vụ enter, sau đây là các lệnh còn lại làm gì:

    • trích xuất vị trí của tệp được tải xuống một phần từ giá trị trong cột _datatương ứng với một hàng được xác định bởi com.android.veinating dưới dạng gói thông báo. Chúng tôi mong muốn xóa tập tin đó. Đây là một sự hy sinh nhỏ để thực hiện.
    • nếu thực sự có một đường dẫn tệp dưới _data , thì hãy sử dụng nó để xóa tệp được chỉ bởi nó.
    • xóa hàng đó, nếu không, nó sẽ được Trình quản lý tải xuống đọc khi kết nối mạng thay đổi (được kết nối lại với Wi-Fi) và tự động cập nhật sẽ bắt đầu lại.
    • vô hiệu hóa dịch vụ Play Store đã nói ở trên để tự động cập nhật không bao giờ bắt đầu trên chính nó
    • bật Wi-Fi
    • kích hoạt dữ liệu di động, nếu nó được kích hoạt trước khi chạy tác vụ này.

1 Tại thời điểm tạo bản sửa đổi đầu tiên của câu trả lời này, phiên bản Play Store hiện tại chắc chắn không phải là 6.0.5 mà ở trên. Tuy nhiên, cho đến nay, không có thiết bị nào của tôi nhận được bất kỳ bản cập nhật Play Store nào nữa.


Kịch bản không hoạt động với tôi vì vậy chỉ là một bước khắc phục sự cố nhỏ, tôi đã chạy lệnh "truy vấn nội dung" theo cách thủ công và nhận thấy nó thực sự dẫn đến chuỗi "Không tìm thấy kết quả" nên dòng tiếp theo "xóa nội dung" không làm gì cả điều kiện IF không đúng
prl77

2

Gần nhất tôi đến là kết hợp hai cài đặt. Tôi làm điều này trên hai thiết bị, một chạy Android 4.4.4 (KitKat) và một chạy Android 5.0.2 (Lollipop).

  • Cài đặt hệ thống → Wi-Fi → Nâng cao → Bật Wi-Fi trong khi ngủ → Chỉ khi được cắm
  • Cửa hàng Play → Cài đặt → Tự động cập nhật ứng dụng → Tự động cập nhật ứng dụng qua Wi-Fi

Nó dường như nhận được các bản cập nhật ít nhất một chút thường xuyên hơn khi được cắm. Nó không hoàn hảo, nhưng nó không phải là một giải pháp nửa vời và nó không yêu cầu Trình quản lý hoặc root.


0

Điều này có thể đạt được bằng cách sử dụng Tasker (Ứng dụng trả phí). Trong Tasker, Hồ sơ có thể được xác định có các điều kiện sau. Nó có ít đường cong học tập, nhưng Ứng dụng này có thể thay thế gần như nhiều ứng dụng.

Dưới đây là hồ sơ mẫu,

Khi Pin> X%Wifi được BẬTSạc được bật

Bật tự động đồng bộ hóa

Đây chỉ là một mẫu, bạn có thể chỉ định điều kiện dựa trên yêu cầu của bạn. Vì đây là một chủ đề riêng biệt, tôi sẽ khuyến khích bạn google tasker trong các diễn đàn xda.


3
Điều này sẽ không bật / tắt tất cả đồng bộ hóa tự động cho tất cả dữ liệu? Phải tự làm mới mọi dịch vụ khác để Play Store không tự động cập nhật có vẻ ít hơn lý tưởng.
Ông Buster

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.