Tắt rung cho thông báo 'Đăng nhập vào mạng WiFi'


17

Kể từ bản cập nhật Android 6.0 trên Nexus 5, mỗi khi tôi nhận được thông báo 'Đăng nhập vào mạng WiFi', điện thoại sẽ rung. Bất kỳ ý tưởng nào tôi có thể tắt tính năng này trong khi vẫn giữ rung cho các cuộc gọi, tin nhắn SMS, tin nhắn WhatsApp, v.v.?


4
Tôi đau khổ với cùng một vấn đề. Tôi đã tìm kiếm rộng rãi và nó dường như là một vấn đề mới với v6.0. Rất, rất khó chịu.
dbasch

1
Không có sửa chữa được đề xuất dưới đây làm việc cho tôi. Tôi sử dụng chế độ Ưu tiên cho mục đích sử dụng của nó (ví dụ: khi tôi bận hoặc đang ngủ); Tôi không muốn điện thoại của mình ở chế độ ưu tiên mọi lúc. Và không có bản sửa lỗi nào khác có vẻ thực sự hoạt động (và câu trả lời của Andrew T dường như chỉ ra lý do tại sao). Có một sửa chữa cho một rom gốc root? Liên quan đến một mô-đun Xposed? Nó sẽ được sửa trong các phiên bản sau của Android phải không?
znt

Câu trả lời:


6

Có một cách giải quyết liên quan đến chế độ Chỉ ưu tiên của Đừng làm phiền .

Nói một cách đơn giản, bạn phải chỉ sử dụng Ưu tiên (từ Cài đặt nhanh - Không làm phiền ) vì nó có cài đặt trên mỗi ứng dụng để cảnh báo thông báo có thể ghi đè cài đặt mặc định của hệ thống. Chế độ chỉ ưu tiên sẽ vẫn hiển thị tất cả các thông báo. Tuy nhiên, chỉ có các thông báo ưu tiên sẽ được cảnh báo (âm thanh, rung và đèn LED).

Ý tưởng là coi tất cả các thông báo là ưu tiên (từ Cài đặt - Âm thanh & thông báo - Thông báo ứng dụng - [tên ứng dụng] - Được coi là ưu tiên) ngoại trừ thông báo cổng bị khóa, trong ứng dụng Hệ thống Android (theo mặc định, các ứng dụng hệ thống không được liệt kê Bạn cần đánh dấu Hiển thị hệ thống từ menu tràn. Để ứng dụng này là không ưu tiên, nhưng đừng quên phần còn lại của các ứng dụng hệ thống).

Tuy nhiên, có một số nhược điểm mà bạn có thể cân nhắc trước khi sử dụng cách giải quyết này:

  1. Bạn hy sinh mục đích sử dụng của chế độ Chỉ ưu tiên, chỉ để chế độ Im lặng hoàn toàn làm tùy chọn duy nhất (tuy nhiên, nếu bạn không bao giờ có ý định sử dụng tính năng này, thì bạn thật may mắn vì bạn có thể sử dụng nó).
  2. Nếu bạn đã cài đặt nhiều ứng dụng, sẽ khá tẻ nhạt khi đặt tất cả các ứng dụng coi ưu tiên của chúng là thông báo (có lẽ tập lệnh có thể giúp ...). Ngoài ra, mỗi khi bạn cài đặt một ứng dụng mới, bạn không được quên coi thông báo là ưu tiên (trừ khi bạn không quan tâm đến cảnh báo của ứng dụng đó).
  3. Bạn sẽ không nhận được bất kỳ cảnh báo nào cho tất cả các thông báo từ Hệ thống Android (bạn cần thử nghiệm điều này, vì tôi không biết Hệ thống nào được xem xét bởi Hệ thống Android).

5

TL; DR

Nếu bạn vẫn muốn có rung trên tất cả các thông báo ngoại trừ cổng bị khóa (vấn đề cụ thể này) , tôi sợ bạn không thể .

Đó là dbasch được đề cập trong bình luận , rằng độ rung (thực ra là chính cảnh báo thông báo ) đã được thêm vào Marshmallow.


Chi tiết kỹ thuật

Khi Android phát hiện ra rằng WiFi cần phải đăng nhập vào cổng bị khóa, như bạn đã nhận thấy, nó sẽ tạo ra một thông báo. Nó được thực hiện bởi setProvNotificationVisibleIntent()chức năng trong ConnectivityService.

Hiển thị hoặc ẩn thông báo cung cấp mạng.

Chúng tôi sử dụng thông báo cho hai mục đích: để thông báo rằng mạng yêu cầu đăng nhập ( NotificationType.SIGN_IN) hoặc để thông báo rằng mạng không có quyền truy cập Internet ( NotificationType.NO_INTERNET). Chúng tôi hiển thị tối đa một thông báo cho mỗi ID, vì vậy trên một mạng cụ thể, chúng tôi có thể hiển thị loại thông báo được yêu cầu gần đây nhất. Vì vậy, ví dụ nếu một cổng bị khóa không trả lời trong vòng vài giây NO_INTERNETsau khi kết nối, trước tiên chúng ta có thể hiển thị và sau đó khi kiểm tra cổng bị khóa hoàn tất, hiển thị SIGN_IN.

Mã có liên quan đến cảnh báo thông báo được sử dụng trong Android 6.0 Marshmallow :

Notification notification = new Notification.Builder(mContext)
    ...
    .setDefaults(Notification.DEFAULT_ALL)
    ...

Lưu ý rằng Notification.DEFAULT_ALLsẽ " sử dụng tất cả các giá trị mặc định (nếu có) ", điều đó có nghĩa là tùy thuộc vào cài đặt thông báo của hệ thống của bạn (âm thanh, độ rung và đèn LED).

So với phiên bản trong Android 5.x Lollipop , mã là:

Notification notification = new Notification();
...

Không nhiều không ít. Đó là mã có liên quan. new Notification()sẽ " xây dựng một Notificationđối tượng với các giá trị mặc định ". Mặc dù có vẻ như không có thay đổi về ý nghĩa, lưu ý rằng defaultskhông được đặt / khởi tạo thành Notification.DEFAULT_ALL(giá trị: -1). Thay vào đó, vì không có khởi tạo, nó sẽ được mặc định là 0, không có cảnh báo .

Cho dù đó có phải là lỗi do Google bỏ qua đã được sửa trong Marshmallow hay không, tôi không biết. Ngoài ra, đó là lý do tại sao không có cảnh báo trong Android Lollipop, nhưng bây giờ đã có trong Android Marshmallow.


"Bạn không thể". Tôi cá là bạn có thể với một mô-đun Xposed (hoặc ít nhất là một số cách đọc sơ bộ khiến tôi nghĩ đến điều này), mặc dù người ta có thể phải tự viết nó ...
znt

1

Cách duy nhất tôi tìm thấy để loại bỏ rung động khó chịu đó là vô hiệu hóa hoàn toàn thông báo 'wifi có sẵn'. Để thực hiện, hãy chuyển đến cài đặt-> wifi -> nhấn vào ba dấu chấm dọc -> đi tới 'cài đặt nâng cao' và tắt thông báo cho các mạng wifi có thể truy cập công khai. Chờ đợi một sửa chữa, tôi nghĩ rằng đó là giải pháp duy nhất và không quá mất mát để vô hiệu hóa chúng, tôi luôn nghĩ rằng chúng đủ vô dụng.


3
Cảm ơn câu trả lời của bạn. Tuy nhiên, điều này dường như không hoạt động, nó vẫn hiển thị thông báo và rung ngay cả sau khi tắt tùy chọn 'Thông báo mạng'.
Ritz

1
Khắc phục sự cố này cũng không hoạt động trên Nexus 5 của tôi.
dbasch

Tôi đã thử điều này trên Moto X Pure của tôi và nó cũng không hoạt động ở đó.
Nat Kuhn

Cũng không phải trên thế hệ thứ hai Moto E của tôi
Andy Clark

1

Cài đặt> Ứng dụng> Dịch vụ kết nối Google> Thông báo> Chặn tắt chúng hoàn toàn.


Cảm ơn, (giả sử điều này hoạt động)! Bây giờ tôi chỉ cần một cách để nhớ rằng tôi đã chặn cái này khi họ sửa nó ...
Nat Kuhn

Đáng buồn thay, giả định đó là không chính xác ... đã không hoạt động trên Moto X Pure của tôi
Nat Kuhn

0

Thông báo đó được bắt đầu bởi Hệ thống Android ( android). Bạn có thể sử dụng các ứng dụng để từ chối Hệ thống Android cho phép rung thiết bị trong mọi tình huống. Với điều kiện bạn đã thiết lập trong PC, hãy làm:

adb shell appops set android VIBRATE deny

Hãy thử kết nối với Wi-Fi mà không có truy cập internet. Bạn vẫn sẽ nhận được thông báo đó nhưng không có rung. Nếu bạn cũng có ý định ẩn thông báo đó, bạn có thể làm theo phần còn lại của các câu trả lời được đăng ở đây hoặc trên trang web này.

Để hoàn nguyên các thay đổi, hãy làm:

adb shell appops set android VIBRATE allow

Rung để gọi được bắt đầu bởi ứng dụng Trình quay số, đối với SMS, đây sẽ là ứng dụng SMS mặc định của bạn, đối với tin nhắn WhatsApp, đây là ứng dụng tương tự, vì vậy chúng sẽ không bị ảnh hưởng. Có thể có những hậu quả không lường trước được của lệnh đó mà tôi không biết, vì vậy hãy cho tôi biết về chúng thông qua các bình luận.

Lưu ý: giải pháp này được thử nghiệm trên bản dựng CM13 không chính thức.

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.