2011-07-29 43 views
5

Trong ứng dụng của tôi, tôi đã tạo một trang thử nghiệm với một số mã chỉ có sẵn cho nhà phát triển. Bạn chỉ có thể truy cập trang/hoạt động này qua một mục menu. Có cách nào để xác định xem ứng dụng Android có đang chạy trong chế độ gỡ lỗi hay không và chỉ hiển thị mục menu khi điều này là đúng?Chỉ hiển thị mục menu trong chế độ gỡ lỗi?

regards, Goldhorn

Trả lời

-3

SỬ DỤNG HACK NÀY

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
String nOp = tm.getNetworkOperatorName(); 
if("Android".equals(nOp)) { 
    // ADD YOUR MENUS FOR EMULATOR 
} 
else { 
    // ADD YOUR MENUS FOR DEVICE 
} 
+0

Tôi không nghĩ rằng đây là chính xác những gì tôi đang tìm kiếm . Tôi đang gỡ lỗi trên cả trình giả lập và thiết bị. Vì vậy, tôi không muốn biết liệu ứng dụng có đang chạy trong trình giả lập hoặc trên thiết bị hay không. Tôi muốn biết nếu ứng dụng đang chạy trong chế độ gỡ lỗi hoặc trong chế độ 'sản xuất' – Goldhorn

+0

xin lỗi ... Hãy thử câu trả lời của @ Vino? –

+0

@ Vino của câu trả lời là những gì tôi đang tìm kiếm: D – Goldhorn

4

Để trực tiếp kiểm tra chế độ gỡ lỗi trong menu hoặc tài nguyên XML khác, chúng tôi có thể xác định resValue trong build.gradle như bên dưới.

buildTypes { 
    release { 
     ... 
     resValue "bool", "DEBUG", "false" 
    } 
    debug { 
     ... 
     resValue "bool", "DEBUG", "true" 
    } 
} 

Trong generated.xml chúng tôi sẽ nhận được:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <!-- Automatically generated file. DO NOT MODIFY --> 

    <!-- Values from build type: debug --> 
    <bool name="DEBUG">true</bool> 

</resources> 

Bây giờ chúng ta có thể sử dụng giá trị này và trong menu.xml:

<item android:visible="@bool/DEBUG" ... /> 
+0

Và để lấy giá trị theo chương trình: 'DEBUG_MODE = getResources(). GetBoolean (R.bool.DEBUG);' –

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