blob: 441c9c50a4ec60617b28e599d9bfe27517492866 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef BASE_ANDROID_DEVICE_INFO_H_
#define BASE_ANDROID_DEVICE_INFO_H_
#include <string>
#include "base/base_export.h"
#if __ANDROID_API__ >= 29
namespace aidl::org::chromium::base {
class IDeviceInfo;
} // namespace aidl::org::chromium::base
using ::aidl::org::chromium::base::IDeviceInfo;
#else
struct IDeviceInfo;
#endif
namespace base::android::device_info {
BASE_EXPORT const std::string& gms_version_code();
BASE_EXPORT void set_gms_version_code_for_test(
const std::string& gms_version_code);
BASE_EXPORT void Set(const IDeviceInfo& info);
BASE_EXPORT bool is_tv();
BASE_EXPORT bool is_automotive();
BASE_EXPORT bool is_foldable();
BASE_EXPORT bool is_desktop();
// Available only on Android T+.
BASE_EXPORT int32_t vulkan_deqp_level();
BASE_EXPORT bool is_xr();
BASE_EXPORT bool was_launched_on_large_display(); // >= 600dp
BASE_EXPORT std::string device_name();
// For testing use only.
BASE_EXPORT void set_is_xr_for_testing();
BASE_EXPORT void reset_is_xr_for_testing();
} // namespace base::android::device_info
#endif // BASE_ANDROID_DEVICE_INFO_H_