2012-04-09 62 views
8

Tôi đang tạo ứng dụng độc quyền cho một công ty sẽ không bao giờ phát hành ứng dụng đó trên Android Market (hoặc Cửa hàng Play mà tôi đoán bây giờ) trong Ice Cream Sandwich (Android 4.0).Vô hiệu hóa nút Home trong Android ICS (4.0)

Tôi cần tắt Trang chủ để người dùng không thể gỡ cài đặt phần mềm độc hại hoặc xóa dữ liệu mà ứng dụng chụp. Phiên bản mới nhất này là phiên bản đầu tiên được viết trong phiên bản 4.0, các phiên bản trước đó được viết bằng phiên bản 2.2 và 3.2.

Để tắt nút Màn hình chính trong 2.2, tôi đã liên kết ứng dụng dưới dạng thay thế nhà, vì vậy nút vừa mở lại ứng dụng, nhưng tôi không thể sử dụng phương pháp này nữa, điều này phần nào ngăn cản chúng tôi thực hiện cập nhật của mình cho ứng dụng . (chúng tôi không muốn để cung cấp cho người dùng tùy chọn chọn lại một mặc định Home, vì điều đó sẽ dẫn đến xóa dữ liệu

mã tôi có cho tắt chức năng nút Home trong 3.2 là:

@Override 
public void onAttachedToWindow() { 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
    super.onAttachedToWindow(); 
} 

và, trong onCreate:

KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); 
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
lock.disableKeyguard(); 

Nhưng khi tôi chạy cùng một mã làm việc trên máy tính bảng 3.2 của tôi, nó không hoạt động trên máy tính bảng 4.0 của tôi.

Tôi đã tự hỏi liệu có một API hoặc phương pháp mới mà 4.0 có sẽ thực hiện tác dụng tương tự như tôi hiện có trong bản triển khai 3.2 của tôi hay không.

Cảm ơn mọi trợ giúp hoặc chỉ đường.

Adam

+0

Ứng dụng của bạn hoạt động như phần mềm độc hại ở chỗ nó kiểm soát thiết bị cách xa người dùng. Android 4.0+ được thiết kế để ngăn chính xác điều đó. – Dubs

Trả lời

6

Làm thế nào về một workaround ..

Viết một ứng dụng thứ hai thực hiện các màn hình chủ, khi nút màn hình chủ được nhấn ứng dụng này sẽ đến với tiền cảnh. Từ ứng dụng này, bạn cần phải đẩy ứng dụng chính của bạn trở lại nền trước. Điểm duy nhất là ứng dụng Màn hình chính của bạn không bao giờ cần bản cập nhật, nhưng bạn có thể cập nhật ứng dụng chính một cách tự do mà không cần tab yêu cầu đặt trình khởi chạy nhà.

Hy vọng điều đó có ý nghĩa ..

+0

Giải thích của bạn có ý nghĩa và nó hoạt động hoàn hảo. Chỉ có một chút nhấp nháy từ ứng dụng chính của tôi cho kẻ xâm nhập nhà ... nhưng điều đó được mong đợi bằng cách chuyển đổi ứng dụng. Khi bắt đầu, tôi đã di chuyển ứng dụng tấn công sang phía sau, điều này đã giúp giảm bớt một số nhấp nháy. – adamacdo

+0

người dùng vẫn có thể bỏ chọn ứng dụng này –

+0

Tôi cũng cần cùng loại kịch bản, nhưng Chúng tôi có thể thoát ứng dụng bằng cách sử dụng nhật ký DDMS và nút bấm dài cho phép trình quản lý tác vụ. có cách nào chúng ta có thể vô hiệu hóa báo chí dài của nút home? – DAS

0

Không .... Bạn không có thể ghi đè nút home cho Android4.0 ít nhất .. sử dụng giải pháp của "hotveryspicy" Và, nếu bạn muốn để đáp ứng các nút HOME, thực hiện một màn hình chủ.

+0

Tôi không thể đếm ứng dụng dưới dạng màn hình chính vì khi chúng tôi cập nhật ứng dụng, người dùng sẽ có khả năng chọn trang chủ làm công cụ khởi chạy, cho phép xóa dữ liệu nhạy cảm ... đó là số một Tôi cần phải tránh. – adamacdo

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