Tôi đang phát triển một ứng dụng dành cho thiết bị di động dựa trên Android với minSdkVersion=15
. Tôi muốn hỗ trợ cả hai định hướng cho máy tính bảng và chỉ chụp chân dung cho điện thoại thông minh. Mọi thứ hoạt động như một sự quyến rũ nhưng tôi đang trải qua một lỗi nhỏ khiến tôi phát điên. Khi điện thoại thông minh đang ở chế độ ngang và tôi cố gắng kích hoạt một Hoạt động mới, nó sẽ mở ở chế độ nằm ngang trong một khoảng thời gian và sau đó tự động chuyển sang chế độ dọc. Mỗi một trong những hoạt động của tôi thừa kế một lớp GeneralActivity:Thay đổi hướng hoạt động tự động trên Android
public class GeneralActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// If smartphone lock orientation to portrait
if (!Helper.isTablet(this.getApplicationContext())){
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
}
tôi phát hiện máy tính bảng với chức năng này:
public class Helper {
public static boolean isTablet(Context context){
Configuration config = context.getResources().getConfiguration()
return config.smallestScreenWidthDp >= 600;
}
}
tôi chọn không chỉ định android:screenOrientation
bên manifest.xml vì theo cách đó tôi có thể để hỗ trợ tất cả định hướng giao diện cho máy tính bảng. Tôi có thiếu gì đó không?
EDIT
tôi quyết định áp dụng các thực hành tốt nhất gợi ý trong câu trả lời của Jonathan, nhưng vấn đề tôi đã mô tả vẫn còn ở đây. Đây là repo của tôi trên github: https://github.com/giacmarangoni/Android-Orientation-Test
Hi, tôi đang phải đối mặt với cùng một vấn đề .. và nó chỉ xảy ra cho các thiết bị Nougat .. Tôi đã có kịch bản tương tự như của bạn và tôi bị mắc kẹt nặng trên đó. Bạn có may mắn không? –