Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sebelum memulai, kontribusikan kontak Anda ke Windows.
Anda dapat merekam aktivitas kontak untuk mewakili interaksi yang bermakna antara pengguna dan kontak dalam aplikasi Anda. Aktivitas kontak bertindak sebagai sinyal interaksi ringan yang membantu Windows memahami bagaimana pengguna terlibat dengan kontak di seluruh pengalaman terkait orang seperti People Widgets, Share Sheet, dan Windows Search Box secara bertahap sesuai rencana.
Note
Referensi ContactAnnotationOperations saat ini tidak mencantumkan versi Windows atau SDK untuk nilai Activity, dan artikel ini tidak menyatakan pengalaman mana yang menggunakan aktivitas kontak hari ini. Riwayat versi dalam referensi mencantumkan Share (Windows 10 versi 1703, SDK 15063) sebagai nilai terdokumentasi terbaru. Periksa referensi API untuk pembaruan sebelum Anda bergantung pada Activity dalam aplikasi yang menargetkan versi SDK yang lebih lama.
Setiap aktivitas merekam tiga informasi utama:
- Kontak — kontak yang terlibat dalam interaksi
- Apa — jenis interaksi yang terjadi
- Ketika — waktu di mana interaksi terjadi
Untuk merekam aktivitas kontak, aplikasi harus membuat ContactAnnotation yang terkait dengan kontak dan mengatur SupportedOperations ke ContactAnnotationOperations.Activity. Windows menafsirkan anotasi dengan jenis operasi ini sebagai sinyal interaksi yang terkait dengan kontak.
Setiap aktivitas mewakili satu peristiwa interaksi dan harus direkam secara terpisah. Saat mengirimkan beberapa aktivitas kontak, lakukan iterasi melalui rekaman interaksi dan panggil TrySaveAnnotationAsync untuk setiap peristiwa. Perulangan tidak menyediakan API batch atau tidak mengurangi overhead sinkronisasi.
Payload aktivitas kontak
Untuk merekam aktivitas kontak, atur ProviderProperties["ActivityPayload"] pada ContactAnnotation ke string JSON yang menjelaskan interaksi.
Payload harus mencakup properti berikut:
| Property | Description |
|---|---|
ActivityType |
Mengidentifikasi jenis interaksi. |
ActivityTimestampUnix |
Waktu ketika interaksi terjadi, dinyatakan sebagai waktu Unix UTC dalam hitungan detik. |
Gunakan kunci ActivityPayload dan nama properti payload ActivityTimestampUnix dan ActivityType persis seperti yang ditunjukkan. Nama-nama ini membentuk spesifikasi berbasis string untuk menjelaskan aktivitas.
Jenis aktivitas kontak yang didukung
Bidang ActivityType mengidentifikasi interaksi yang terjadi antara pengguna dan kontak. Windows saat ini mendukung jenis aktivitas berikut.
| Jenis Aktivitas | Description |
|---|---|
message |
Mengirim atau menerima pesan dengan kontak. |
call |
Memulai atau menjawab panggilan audio atau video. |
email |
Mengirim atau menerima email. |
meeting |
Bergabung atau menjadwalkan rapat yang melibatkan kontak. |
share |
Berbagi konten dengan kontak. |
social |
Berinteraksi dengan kontak melalui media sosial. |
profileInteraction |
Membuka atau berinteraksi dengan profil kontak. |
Aplikasi-aplikasi harus memilih jenis aktivitas yang paling mewakili interaksi pengguna yang terjadi dalam aplikasi.
Merekam contoh aktivitas kontak
Contoh berikut menunjukkan cara merekam interaksi perpesanan sebagai aktivitas kontak.
long nowUnix = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
var payload = new
{
ActivityType = "message",
ActivityTimestampUnix = nowUnix
};
var annotation = new ContactAnnotation
{
ContactId = contact.Id,
RemoteId = contact.RemoteId,
SupportedOperations = ContactAnnotationOperations.Activity
};
annotation.ProviderProperties["ActivityPayload"] =
JsonSerializer.Serialize(payload);
bool saved = await this.contactAnnotationList.TrySaveAnnotationAsync(annotation);
if (!saved)
{
// The annotation wasn't saved, so Windows didn't receive this activity.
// Log the failure or retry later. Don't treat the interaction as recorded.
System.Diagnostics.Debug.WriteLine(
$"Failed to save contact activity for contact {contact.RemoteId}.");
}
TrySaveAnnotationAsync mengembalikan false ketika tidak dapat menyimpan anotasi, jadi periksa hasilnya sebelum Anda menganggap aktivitas direkam. Hasil true berarti anotasi disimpan. Ini tidak menunjukkan bagaimana Windows nanti memproses aktivitas.
Model akses kegiatan kontak
Aktivitas kontak hanya dapat ditulis dari perspektif aplikasi Anda. Aplikasi Anda dapat mengirimkan rekaman aktivitas, tetapi saat ini Windows tidak mendukung pengambilan atau penghapusan rekaman aktivitas yang dikirimkan sebelumnya secara eksplisit. pembersihan siklus hidup yang dikelola Windows bersifat terpisah, seperti yang dijelaskan di bagian berikutnya.
Jika aplikasi Anda perlu menyimpan atau mengelola riwayat interaksi, simpan di penyimpanan atau layanan backend Anda sendiri.
Siklus hidup aktivitas kontak
Aktivitas kontak dikaitkan dengan kontak melalui RemoteId yang disediakan aplikasi.
Jika kontak dihapus atau RemoteId terkait dihapus, aktivitas kontak yang ditautkan ke kontak tersebut akan dihapus secara otomatis. Demikian pula, ketika aplikasi dihapus instalasinya atau item terkait UserDataAccount dihapus, Windows secara otomatis menghapus kontak dan aktivitas kontak yang direkam oleh aplikasi tersebut.
Pemrosesan dan retensi aktivitas kontak
Aktivitas sentuhan diproses oleh Windows sebagai sinyal interaksi.
Periode retensi, kedaluwarsa (TTL), agregasi, dan evaluasi aktivitas kontak dikelola secara internal oleh Windows. Aplikasi tidak mengontrol berapa lama aktivitas disimpan atau bagaimana aktivitas tersebut diproses setelah pengiriman.
Aktivitas kontak harus mewakili interaksi pengguna asli dan tidak boleh dihasilkan dengan maksud memengaruhi peringkat kontak atau visibilitas. Windows menentukan bagaimana sinyal ini berkontribusi pada pengalaman yang berkaitan dengan orang menggunakan logika platform internal.
Konten terkait
Windows developer