Bagikan melalui


Koneksi ke Ponsel untuk Kelangsungan Tugas Lintas Perangkat

Aplikasi seluler Anda dapat secara terprogram berbagi URL situs web terbaru dan tautan dokumen ke PC Windows yang telah disiapkan Koneksi ke Ponsel. Fitur kelangsungan tugas ini tersedia di perangkat Android yang terintegrasi dengan pengalaman "Koneksi ke Windows".

Fitur ini hanya tersedia di Perangkat yang didukung untuk pengalaman Koneksi ke Ponsel.

Dokumentasi ini akan mencakup cara mengintegrasikan aplikasi Anda dengan KONEKSI KE PONSEL Task Continuity API, termasuk persyaratan skenario, area permukaan, dan persetujuan Fitur Akses Terbatas (LAF).

Pelajari selengkapnya tentang Koneksi ke Ponsel: Sinkronkan Ponsel Cerdas Anda ke Komputer Windows Anda.

Persyaratan Skenario

API kelangsungan tugas memungkinkan Anda menyinkronkan konten dari aplikasi Android ke PC Windows yang telah disiapkan Koneksi ke Ponsel. Kondisi berikut harus dipenuhi agar akses ke API ini diberikan:

  • URL web sinkronisasi DO yang merupakan URL valid yang dapat diakses oleh PC Windows
  • Tautan dokumen cloud sinkronisasi DO yang dapat diakses oleh PC Windows
  • MENYinkronkan tautan dokumen lokal ke PC Windows yang harus dapat diakses di perangkat seluler melalui aplikasi Anda
  • JANGAN sinkronkan lebih dari 60 kali per menit
  • JANGAN sinkronkan konten jika pengguna tidak terlibat dengan pengalaman aplikasi Anda

Koneksi ke Ponsel akan menampilkan konten yang disinkronkan di node Aplikasi di bagian "Baru digunakan" dan "Situs web terbaru" dan dalam flyout pemberitahuan.

Koneksi ke Ponsel cuplikan layar aplikasi dan situs web yang baru digunakan

Persetujuan Fitur Akses Terbatas (LAF)

Koneksi ke Ponsel Kelangsungan Tugas adalah Fitur Akses Terbatas (LAF). Untuk mendapatkan akses ke API ini, Anda harus mendapatkan persetujuan dari Microsoft untuk beroperasi dengan paket "Koneksi ke Windows" yang telah dimuat sebelumnya di perangkat seluler Android.

Untuk meminta akses, kirim email wincrossdeviceapi@microsoft.com dengan informasi yang tercantum di bawah ini.

  • Deskripsi pengalaman pengguna Anda
  • Cuplikan layar aplikasi Anda di mana pengguna secara asli mengakses web atau dokumen
  • PackageId aplikasi Anda
  • Tautan Google Play Store untuk aplikasi Anda

Jika permintaan disetujui, Anda akan menerima instruksi tentang cara membuka kunci fitur. Persetujuan akan didasarkan pada komunikasi Anda, asalkan skenario Anda memenuhi Persyaratan Skenario yang diuraikan di atas.

Penanganan Data

Dengan menggunakan KONEKSI KE PONSEL Task Continuity API, Microsoft akan memproses dan mentransfer data Anda sesuai dengan Perjanjian Layanan Microsoft dan Pernyataan Privasi Microsoft. Data yang ditransfer ke perangkat tertaut pengguna dapat diproses melalui layanan cloud Microsoft untuk memastikan transfer data yang andal antar perangkat. Data yang ditangani oleh API ini tidak dipertahankan oleh layanan cloud Microsoft yang tunduk pada kontrol pengguna akhir.

SDK Lintas Perangkat yang akan Anda integrasikan dalam paket Anda memastikan bahwa data yang diberikan ke API hanya ditangani oleh paket Microsoft tepercaya.

Untuk mengintegrasikan aplikasi seluler Android Anda dengan KONEKSI KE PONSEL Task Continuity API, Anda harus memperbarui deklarasi manifes Anda lalu mengirim konteks aplikasi. Lihat contoh kode sampel di bawah ini.

Deklarasi manifes aplikasi Android

Aplikasi Anda harus mendaftarkan penerima siaran untuk penyedia konteks aplikasi lintas perangkat untuk berpartisipasi dalam kontrak. Pendaftaran harus dalam manifes sebagai berikut.

<?xml version="1.0" encoding="utf-8"?>   
<manifest xmlns:android="http://schemas.android.com/apk/res/android"   
    <!--   
        If the app targets API 30 or higher, be sure to use the <queries>   
        and add com.microsoft.appmanager to the included packages.   
    -->   
    <queries>   
        <package android:name="com.microsoft.appmanager" />   
    </queries>   
    <application …     
        <!-- … -->   
       <!--   
           This is the receiver declaration for receiving broadcasts from LTW.   
           It needs to be exported with meta-data as this is checked for    

           The package before we send the broadcast.   
       -->   
       <receiver   
           android:name="com.microsoft.crossdevicesdk.continuity.AppContextBroadcastReceiver"  
           android:enabled="true"   
           android:exported="true">   
           <intent-filter>   
               <action android:name="com.microsoft.crossdevice.appcontextrequest" />   
           </intent-filter>   
   
            <meta-data   
                android:name="com.microsoft.crossdevice.sampleProviderMetadataName"   
                android:value="true" />   
        </receiver>   
    </application>   
</manifest>

Sampel kode untuk mengirim konteks aplikasi

Setelah deklarasi manifes ditambahkan, aplikasi mitra dapat mengirim konteks aplikasi mereka seperti yang terlihat dalam contoh sampel kode di bawah ini.

Contoh ini menunjukkan penggunaan IAppContextEventHandler antarmuka dengan Java.

IAppContextEventHandler appContextEventHandler = new IAppContextEventHandler() {  
    @Override  
    public void onContextRequestReceived(ContextRequestInfo contextRequestInfo) {  
        Log.d(TAG, String.format("onContextRequestReceived, type:%s", contextRequestInfo.getType()));  
        //Not necessary to do following things in here, just  
        //make sure to send app context after receiving broadcast.  
        AppContext appContext = new AppContext();  
        //...  
        //set parameter  
        appContext.setType(ProtocolConstants.TYPE_APPLICATION_CONTEXT);  
        appContext.setCreateTime(System.currentTimeMillis());  
        appContext.setLastUpdatedTime(System.currentTimeMillis());  
        appContext.setTitle("New PowerPoint Presentation");  
        appContext.setExtras("{\"DocInfo\":\"[{\"timestamp\":1672,\"DocTitle\":\"Book Sharing\",\"Index\":\"8\"}]\"}");  
        //...  
        AppContextManager.INSTANCE.sendAppContext(getApplicationContext(),appContext);  
    }  
  
    @Override  
    public void onInvalidContextRequestReceived(@NonNull Throwable throwable) {  
        Log.e(TAG, String.format("onInvalidContextRequestReceived: " + throwable.getMessage()));  
    }  

    @Override   
    public void onSyncServiceDisconnected() {   
        Log.d(TAG, String.format("onSyncServiceDisconnected"));   
    }  
};  
AppContextManager.INSTANCE.setAppContextEventHandler(appContextEventHandler);

Contoh ini menunjukkan penggunaan ekspresi objek untuk mengimplementasikan IAppContextEventHandler antarmuka dengan Kotlin.

val appContextEventHandler = object : IAppContextEventHandler { 
    override fun onContextRequestReceived(contextRequestInfo: ContextRequestInfo) { 
        Log.d(TAG, String.format("onContextRequestReceived, type:%s", contextRequestInfo.type)); 
        //Not necessary to do following things in here, just 
        //make sure to send app context after receiving broadcast. 
        var appContext = AppContext() 
        //... 
        //set parameter 
        appContext.type = ProtocolConstants.TYPE_APPLICATION_CONTEXT 
        appContext.createTime = System.currentTimeMillis() 
        appContext.lastUpdatedTime = System.currentTimeMillis() 
        appContext.setTitle("New PowerPoint Presentation") 
        appContext.setExtras("{\"DocInfo\":\"[{\"timestamp\":1672,\"DocTitle\":\"Book Sharing\",\"Index\":\"8\"}]\"}") 
        //... 
        AppContextManager.sendAppContext(applicationContext,appContext) 
    } 
 
    override fun onInvalidContextRequestReceived(throwable: Throwable) { 
        Log.e(TAG, String.format("onInvalidContextRequestReceived: " + throwable.message)) 
    } 
 
    override fun onSyncServiceDisconnected() { 
        Log.d(TAG, String.format("onSyncServiceDisconnected")) 
    } 
} 
AppContextManager.setAppContextEventHandler(appContextEventHandler)

Deskripsi protokol

Protokol ini adalah siaran sederhana yang dikirim dari "Koneksi ke Windows" ke setiap paket yang mendukung jenis fitur konteks aplikasi tertentu ketika "Koneksi ke Windows" siap untuk mendapatkan konteks aplikasi.

Bidang niat Tombol Nilai
Perbuatan T/A com.microsoft.crossdevice.appcontextrequest Diperbaiki untuk tautan ke Windows. Pemohon akan com.microsoft.appmanager
Ekstra (bundel) version 2.0 (versi [minor].[ mayor])
Ekstra (bundel) contentProviderUri content://com.microsoft.taskcontinuity/b695d1d8 Dibuat secara unik untuk setiap paket.
Ekstra (bundel) requestedContextType Jika disediakan, tunjukkan jenis konteks aplikasi apa yang diminta. Ini adalah bendera biner, untuk saat ini kita memiliki dua jenis... Konteks aplikasi: 0x01, dan Konteks riwayat browser: 0x02.

Setelah menerima siaran, SDK akan bertanggung jawab untuk validasi dan penanganan informasi. Harapan dari paket yang menerima siaran adalah mengirim konteks aplikasi untuk ditautkan ke Windows. Nilai berikut harus disediakan oleh aplikasi mitra saat mengirim konteks aplikasi:

Tombol Nilai Informasi tambahan
type [wajib] Bendera biner yang menunjukkan jenis konteks aplikasi apa yang dikirim ke LTW. Nilai harus konsisten dengan requestedContextType.
createTime [wajib] Tanda waktu yang mewakili waktu pembuatan konteks aplikasi.
lastUpdatedTime [wajib] Tanda waktu yang mewakili waktu terakhir yang diperbarui dari konteks aplikasi. Setiap kali bidang konteks aplikasi diperbarui, waktu yang diperbarui perlu direkam.
teamId [opsional] Digunakan untuk mengidentifikasi organisasi atau grup tempat aplikasi berada.
intentUri [opsional] Digunakan untuk menunjukkan aplikasi mana yang dapat melanjutkan konteks aplikasi yang diserahkan dari perangkat asal.
appId [opsional] Paket aplikasi konteksnya adalah untuk. Hanya penyedia layanan konteks yang perlu menggunakan ini. Lihat dokumen Java. Jika dihilangkan, paket penyedia respons panggilan akan digunakan.
title [opsional] Judul konteks aplikasi ini, seperti nama dokumen atau judul halaman web.
weblink [opsional] URL halaman web yang akan dimuat di browser untuk melanjutkan konteks aplikasi.
preview [opsional] Byte gambar pratinjau yang dapat mewakili konteks aplikasi.
extras [opsional] Objek pasangan kunci-nilai yang berisi informasi status khusus aplikasi diperlukan untuk melanjutkan konteks aplikasi pada perangkat yang berkelanjutan. Perlu disediakan saat konteks aplikasi memiliki data uniknya.
LifeTime [opsional] Masa pakai konteks aplikasi dalam milidetik. Hanya digunakan untuk skenario yang sedang berlangsung, jika tidak diatur, nilai defaultnya adalah -1.

Agar kompatibel dengan fitur "Browser Continuity" sebelumnya menggunakan X-Device SDK 1.0, kami menambahkan dua metode tambahan lainnya. Nilai berikut harus disediakan saat menggunakan fitur ini:

Bidang niat Tombol Nilai
browserContextEmptyFlag [opsional] Bendera untuk menunjukkan apakah konteks browser kosong. Ini hanya untuk fitur Kelangsungan Browser.
browserHistory [opsional] Menelusuri konteks riwayat untuk aplikasi. Ini hanya untuk fitur Kelangsungan Browser. Saat ini merekomendasikan untuk menyediakan hingga 3 URI. Jika lebih banyak disediakan, mereka akan diabaikan.

Aplikasi mitra dapat memanggil addBrowserContext metode untuk menambahkan riwayat browser. Nilai berikut harus disediakan saat menambahkan riwayat browser:

Tombol Nilai
browserWebUri URI web yang akan terbuka di browser di PC.
(http: atau https:)
title Judul halaman web.
timestamp Tanda waktu yang pertama kali dibuka halaman web atau terakhir disegarkan.
favIcon [opsional] Favicon halaman web dalam byte, harus kecil secara umum.

Repositori Windows Cross-Device di GitHub

Temukan informasi tentang mengintegrasikan Windows Cross-Device SDK ke dalam proyek Anda di repositori Windows-Cross-Device di GitHub.

Untuk daftar FAQ, lihat Koneksi ke Ponsel Tanya Jawab Umum.