Users.dataSources

Định nghĩa về một nguồn dữ liệu cảm biến riêng biệt. Các nguồn dữ liệu có thể tiết lộ dữ liệu thô từ các cảm biến phần cứng trên thiết bị cục bộ hoặc thiết bị đồng hành. Các đối tượng này cũng có thể hiển thị dữ liệu phát sinh, được tạo bằng cách chuyển đổi hoặc hợp nhất các nguồn dữ liệu khác. Có thể tồn tại nhiều nguồn dữ liệu cho cùng một loại dữ liệu. Mọi điểm dữ liệu được chèn vào hoặc đọc từ dịch vụ này đều có một nguồn dữ liệu được liên kết. 

Nguồn dữ liệu chứa đủ thông tin để nhận dạng riêng dữ liệu, bao gồm cả thiết bị phần cứng và ứng dụng thu thập và/hoặc biến đổi dữ liệu đó. Tệp này cũng lưu giữ các siêu dữ liệu hữu ích, chẳng hạn như phiên bản phần cứng và ứng dụng cũng như loại thiết bị. 

Mỗi nguồn dữ liệu tạo ra một luồng dữ liệu riêng biệt với một mã nhận dạng duy nhất. Không phải mọi thay đổi đối với nguồn dữ liệu đều ảnh hưởng đến giá trị nhận dạng luồng. Do đó, dữ liệu do các phiên bản cập nhật của cùng một ứng dụng/thiết bị vẫn có thể được coi là thuộc về cùng một luồng dữ liệu.

Để biết danh sách các phương thức của tài nguyên này, hãy xem ở cuối trang này.

Biểu thị tài nguyên

{
  "dataStreamId": string,
  "name": string,
  "dataStreamName": string,
  "type": string,
  "dataType": {
    "name": string,
    "field": [
      {
        "name": string,
        "format": string,
        "optional": boolean
      }
    ]
  },
  "device": {
    "uid": string,
    "type": string,
    "version": string,
    "model": string,
    "manufacturer": string
  },
  "application": {
    "packageName": string,
    "version": string,
    "detailsUrl": string,
    "name": string
  },
  "dataQualityStandard": [
    string
  ]
}
Tên tài sản Giá trị Nội dung mô tả Ghi chú
application nested object Thông tin về một ứng dụng cấp dữ liệu cảm biến vào nền tảng.
application.detailsUrl string URI không bắt buộc có thể được dùng để liên kết trở lại ứng dụng.
application.name string Tên của ứng dụng này. Đây là tên bắt buộc đối với các khách hàng REST, nhưng chúng tôi không áp dụng tên duy nhất cho tên này. Việc này được cung cấp để thuận tiện cho các nhà phát triển khác muốn xác định REST nào đã tạo Ứng dụng hoặc Nguồn dữ liệu.
application.packageName string Tên gói cho ứng dụng này. Giá trị này được dùng làm giá trị nhận dạng duy nhất khi được các ứng dụng Android tạo, nhưng các ứng dụng REST không thể chỉ định giá trị này. Các ứng dụng REST sẽ được phản ánh số dự án dành cho nhà phát triển trong mã luồng dữ liệu của Nguồn dữ liệu thay vì packageName.
application.version string Phiên bản của ứng dụng. Bạn nên cập nhật trường này bất cứ khi nào ứng dụng thay đổi theo cách ảnh hưởng đến việc tính toán dữ liệu.
dataQualityStandard[] list ĐỪNG PHỔ BIẾN TRƯỜNG NÀY. Thông số này không bao giờ được điền sẵn vào câu trả lời từ nền tảng và bị bỏ qua trong các truy vấn. Nội dung này sẽ bị xoá hoàn toàn trong phiên bản trong tương lai.
dataStreamId string Giá trị nhận dạng duy nhất cho luồng dữ liệu do nguồn dữ liệu này tạo ra. Giá trị nhận dạng bao gồm:

  • Nhà sản xuất, kiểu máy và số sê-ri (UID) của thiết bị thực.
  • Tên hoặc tên gói của ứng dụng. Tên gói được dùng khi nguồn dữ liệu được tạo bằng một ứng dụng Android. Số dự án của nhà phát triển được dùng khi nguồn dữ liệu được tạo bằng ứng dụng Kiến trúc chuyển trạng thái đại diện (REST).
  • Loại nguồn dữ liệu.
  • Tên luồng của nguồn dữ liệu.
Xin lưu ý rằng không phải tất cả các thuộc tính của nguồn dữ liệu đều được sử dụng như một phần của mã nhận dạng luồng. Cụ thể, phiên bản của phần cứng/ứng dụng không được sử dụng. Điều này cho phép chúng tôi duy trì cùng một luồng thông qua các bản cập nhật phiên bản. Điều này cũng có nghĩa là 2 đối tượng DataSource có thể đại diện cho cùng một luồng dữ liệu ngay cả khi chúng không bằng nhau.

Định dạng chính xác của mã luồng dữ liệu do ứng dụng Android tạo là: type:dataType.name:application.packageName:device.manufacturer:device.model:device.uid:dataStreamName

Định dạng chính xác của mã luồng dữ liệu do ứng dụng REST tạo là: type:dataType.name:developer project number:device.manufacturer:device.model:device.uid:dataStreamName

Khi không có bất kỳ trường không bắt buộc nào tạo nên mã luồng dữ liệu, thì mã này sẽ bị loại bỏ khỏi mã luồng dữ liệu. Mã luồng dữ liệu khả dụng tối thiểu sẽ là: type:dataType.name:developer dự án

Cuối cùng, mã dự án nhà phát triển và UID của thiết bị sẽ bị làm rối khi được đọc bởi bất kỳ ứng dụng REST hoặc Android nào không tạo nguồn dữ liệu. Chỉ người tạo nguồn dữ liệu mới thấy số dự án của nhà phát triển ở dạng rõ ràng và thông thường. Tức là khách hàng sẽ thấy tập hợp data_stream_ids khác với tập hợp dữ liệu của một khách hàng khác có thông tin xác thực khác.

dataStreamName string Tên luồng giúp xác định duy nhất nguồn dữ liệu cụ thể này trong số các nguồn dữ liệu khác cùng loại từ cùng một nhà sản xuất cơ bản. Không bắt buộc phải đặt tên luồng, nhưng bạn nên đặt tên này bất cứ khi nào một ứng dụng hiển thị 2 luồng cho cùng một loại dữ liệu hoặc khi thiết bị có 2 cảm biến tương đương.
dataType nested object Loại dữ liệu xác định giản đồ cho luồng dữ liệu được thu thập, chèn vào hoặc truy vấn từ Fitness API.
dataType.field[] list Một trường đại diện cho một phương diện của một loại dữ liệu.
dataType.field[].format string Các định dạng được hỗ trợ khác nhau cho mỗi trường trong một loại dữ liệu.

Các giá trị có thể chấp nhận là:
  • "blob"
  • "floatList"
  • "floatPoint"
  • "integer"
  • "integerList"
  • "map"
  • "string"
dataType.field[].name string Xác định tên và định dạng của dữ liệu. Không giống như tên loại dữ liệu, tên trường không được đặt tên trong vùng chứa tên mà chỉ cần phải là duy nhất trong loại dữ liệu.
dataType.field[].optional boolean
dataType.name string Mỗi loại dữ liệu có một tên duy nhất trong không gian tên. Tất cả các loại dữ liệu trong vùng chứa tên com.google đều được chia sẻ như một phần của nền tảng.
device nested object Hình ảnh minh hoạ một thiết bị tích hợp (chẳng hạn như điện thoại hoặc thiết bị đeo) có thể giữ cảm biến.
device.manufacturer string Nhà sản xuất sản phẩm/phần cứng.
device.model string Tên mẫu mà người dùng cuối nhìn thấy cho thiết bị.
device.type string Hằng số biểu thị loại thiết bị.

Các giá trị có thể chấp nhận là:
  • "chestStrap"
  • "headMounted"
  • "phone"
  • "scale"
  • "smartDisplay"
  • "tablet"
  • "unknown"
  • "watch"
device.uid string Số sê-ri hoặc mã nhận dạng duy nhất khác của phần cứng. Trường này bị làm rối mã nguồn khi được đọc bởi bất kỳ ứng dụng REST hoặc Android nào không tạo nguồn dữ liệu. Chỉ người tạo nguồn dữ liệu mới thấy trường uid ở dạng rõ ràng và bình thường.

Việc làm rối mã nguồn sẽ duy trì đẳng thức; tức là khi có hai mã nhận dạng, nếu id1 == id2, làm rối mã nguồn(id1) == bị làm rối mã nguồn(id2).

device.version string Chuỗi phiên bản cho phần cứng/phần mềm của thiết bị.
name string Tên hiển thị của người dùng cuối cho nguồn dữ liệu này.
type string Hằng số mô tả loại nguồn dữ liệu này. Cho biết nguồn dữ liệu này tạo ra dữ liệu thô hay dữ liệu phái sinh.

Các giá trị có thể chấp nhận là:
  • "derived"
  • "raw"

Phương thức

tạo
Tạo một nguồn dữ liệu mới là duy nhất trên tất cả các nguồn dữ liệu của người dùng này.

Nguồn dữ liệu là nguồn dữ liệu cảm biến duy nhất. Các nguồn dữ liệu có thể hiển thị dữ liệu thô từ các cảm biến phần cứng trên thiết bị cục bộ hoặc thiết bị đồng hành. Các đối tượng này cũng có thể hiển thị dữ liệu phát sinh, được tạo bằng cách chuyển đổi hoặc hợp nhất các nguồn dữ liệu khác. Có thể tồn tại nhiều nguồn dữ liệu cho cùng một loại dữ liệu. Mọi điểm dữ liệu trong mỗi tập dữ liệu được chèn vào hoặc đọc từ API Thể dục đều có một nguồn dữ liệu được liên kết.

Mỗi nguồn dữ liệu tạo ra một luồng nội dung cập nhật tập dữ liệu riêng biệt, với một giá trị nhận dạng nguồn dữ liệu duy nhất. Không phải mọi thay đổi đối với nguồn dữ liệu đều ảnh hưởng đến mã luồng dữ liệu. Do đó, dữ liệu do các phiên bản cập nhật của cùng một ứng dụng/thiết bị thu thập vẫn có thể được coi là thuộc về cùng một nguồn dữ liệu.

Nguồn dữ liệu được xác định bằng một chuỗi do máy chủ tạo, dựa trên nội dung của nguồn đang được tạo. Bạn không nên đặt trường dataStreamId khi gọi phương thức này. Hệ thống sẽ tự động tạo báo cáo này cho máy chủ theo định dạng chính xác. Nếu bạn đặt dataStreamId, thì đối tượng này phải khớp với định dạng mà máy chủ sẽ tạo. Định dạng này là sự kết hợp của một số trường từ nguồn dữ liệu và có thứ tự cụ thể. Nếu không khớp, yêu cầu sẽ không thành công kèm theo lỗi.

Việc chỉ định một DataType không phải là một kiểu đã biết (bắt đầu với "com.google.") sẽ tạo một DataSource có loại dữ liệu tuỳ chỉnh. Chỉ ứng dụng tạo ra các loại dữ liệu đó mới đọc được các loại dữ liệu tuỳ chỉnh đó. Các kiểu dữ liệu tuỳ chỉnh không dùng nữa; hãy sử dụng các kiểu dữ liệu chuẩn.

Ngoài các trường nguồn dữ liệu có trong mã nguồn dữ liệu, số dự án nhà phát triển đã được xác thực khi tạo nguồn dữ liệu cũng được đưa vào. Số dự án của nhà phát triển này bị làm rối mã nguồn khi được bất kỳ nhà phát triển nào khác đọc các loại dữ liệu công khai.
xóa
Xoá nguồn dữ liệu đã chỉ định. Yêu cầu sẽ không thành công nếu nguồn dữ liệu chứa bất kỳ điểm dữ liệu nào.
nhận
Trả về nguồn dữ liệu đã chỉ định.
list
Liệt kê tất cả nguồn dữ liệu mà nhà phát triển có thể nhìn thấy, bằng cách sử dụng phạm vi OAuth được cung cấp. Danh sách này chưa đầy đủ; người dùng có thể có các nguồn dữ liệu riêng tư mà chỉ các nhà phát triển khác mới nhìn thấy, hoặc các lệnh gọi sử dụng các phạm vi khác.
cập nhật
Cập nhật nguồn dữ liệu được chỉ định. Bạn không thể sửa đổi các thuộc tính dataStreamId, dataType, type, dataStreamNamedevice (ngoại trừ version).

Nguồn dữ liệu được xác định bằng dataStreamId của chúng.