2014-11-25 49 views
7

Có cách nào để kiểm tra xem ứng dụng có đang chạy trên Android TV hay Android Mobile không?Làm cách nào để kiểm tra xem ứng dụng có đang chạy trên TV Android hay không

Tôi biết cách kiểm tra bản dựng đang chạy. Tôi muốn bắt đầu một dịch vụ cụ thể nếu ứng dụng đang chạy trên Android TV so với Điện thoại di động. Đã hy vọng được nhà hai người trong cùng một thư viện.

Trả lời

2

Một số tùy chọn là:

1) Truy vấn hệ thống cho một màn hình lớn

2) Sử dụng phản xạ để phát hiện các lớp học cụ thể TV

3) Sử dụng hasSystemFeature để phát hiện sự thiếu màn hình cảm ứng

Thông tin khác

https://developer.android.com/training/tv/start/hardware.html

Và một câu trả lời tương tự dành cho Google TV

Identify GoogleTv from Android app

+2

Nhóm Android kiểm tra đề nghị cho androidTV cách này https://developer.android.com/training/tv/start/hardware.html – leafartist

12
private boolean isDirectToTV() { 
    return(getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEVISION) 
     || getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK)); 
} 

này sẽ trở lại true nếu thiết bị được quảng cáo chính nó như là có một trong hai tính năng android.hardware.type.television hoặc android.software.leanback hệ thống. Android TV và Fire TV xử lý chính xác điều này; Tôi chưa thử nó trên môi trường khác.

+0

1 cách tiếp cận này cho phép bạn dễ dàng cắm các tính năng trên nền tảng tương ứng, tôi chỉ sử dụng nó cho Thẻ Chơi ngay trên AndroidTV. – sschrass

20

Từ Handling TV Hardware trong Android Documents:

public static final String TAG = "DeviceTypeRuntimeCheck"; 

    UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE); 
    if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) { 
     Log.d(TAG, "Running on a TV Device") 
    } else { 
     Log.d(TAG, "Running on a non-TV Device") 
} 
+1

Đây chính xác là những gì Google đề cập. –

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