2012-08-05 27 views
6

Tôi muốn có thể bắt đầu Hoạt động không phải là một phần của ứng dụng trong khi thiết bị bị khóa mật khẩu. Làm thế nào tôi có thể làm điều này, nếu nó thậm chí có thể?Bắt đầu hoạt động bên ngoài trong khi điện thoại bị khóa

Lưu ý: Tôi biết rõ về việc đặt getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); trong hoạt động của mình là onCreate. Tuy nhiên, điều này sẽ không có tác dụng vì tôi không bắt đầu hoạt động của riêng mình, mà là một bên thứ ba nằm ngoài ứng dụng của tôi.

+0

Tại sao bạn cần làm điều đó? –

+0

Bạn có muốn mở khóa điện thoại và hiển thị hoạt động hoặc chỉ khởi chạy và chạy cho đến khi người dùng mở khóa điện thoại? – Erol

+0

Điện thoại sẽ vẫn bị khóa vì nó được bảo vệ bằng mật khẩu. Nhưng tôi muốn khởi chạy hoạt động ở nền trước (ở phía trước màn hình khóa) – Jakar

Trả lời

1

Nó sẽ không hoạt động nếu bạn đang cố gắng để khởi động bất kỳ ứng dụng của bên thứ ba trên màn hình khóa. Như bạn đã quan sát chính mình, bạn cần đặt cờ cửa sổ để đảm bảo rằng hoạt động được khởi chạy trên màn hình khóa, không có cách nào để đảm bảo hoạt động từ ứng dụng của bên thứ ba khác cũng đặt cùng một cờ.

Trong trường hợp bạn đang xây dựng một gói tính năng mà mỗi tính năng không là gì ngoài ứng dụng khác thì bạn sẽ phải đảm bảo rằng tất cả các điểm nhập của tính năng đó đều đặt cờ cửa sổ này. Điều tốt nhất là khai báo một BaseActivity để đặt cờ thích hợp khi tạo và để cho tất cả nhóm dev tính năng sử dụng nó làm lớp cơ sở cho các điểm vào.

1

override chức năng

public void onAttachedToWindow() { 

    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
    super.onAttachedToWindow(); 
} 

này sẽ mang lại hoạt động của bạn có thể nhìn thấy sau khi mở khóa.

+0

Nếu tôi không nhầm, điều này sẽ mang hoạt động của TÔI đến nền trước, mà tôi đã giải quyết. Xem ** Lưu ý ** trong câu hỏi của tôi. Tôi cần startActivity trên một ứng dụng của bên thứ ba và đưa nó lên nền trước (ở phía trước màn hình khóa). – Jakar

1

Điều này chỉ có thể nếu nhà phát triển thực tế đã viết mã bằng cách ghi đè phương pháp onAttachedToWindow() trong hoạt động bạn đang cố gắng mở từ trong ứng dụng của mình.

Nếu không, sau đó, xin lỗi để nói, nhưng bạn không có tùy chọn để làm những gì bạn đang cố gắng làm (như xa như các API gần đây đi)

+0

bất kỳ lý do nào cho việc giảm giá? –

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