Masalah umum dengan UWP pada Program Pengembang Xbox

Topik ini menjelaskan masalah yang diketahui dengan UWP pada Program Pengembang Xbox One. Untuk informasi selengkapnya tentang program ini, lihat UWP di Xbox.

[Jika Anda datang ke sini dari tautan dalam topik referensi API, dan mencari informasi API keluarga perangkat Universal, lihat fitur UWP yang tidak didukung di Xbox.]

Daftar berikut menyoroti beberapa masalah umum yang mungkin Anda temui, tetapi daftar ini tidak lengkap.

Kami ingin mendapatkan umpan balik Anda, jadi silakan laporkan masalah apa pun yang Anda temukan di forum Mengembangkan aplikasi Platform Windows Universal.

Jika Anda terjebak, baca informasi dalam topik ini, lihat Tanya jawab umum, dan gunakan forum untuk meminta bantuan.

Penyebaran dari VS gagal dengan Kontrol Orang Tua diaktifkan

Meluncurkan aplikasi Anda dari VS akan gagal jika konsol mengaktifkan Kontrol Orang Tua di Pengaturan.

Untuk mengatasi masalah ini, nonaktifkan Kontrol Orang Tua untuk sementara waktu, atau:

  1. Sebarkan aplikasi Anda ke konsol dengan Kontrol Orang Tua dinonaktifkan.
  2. Aktifkan Kontrol Orang Tua.
  3. Luncurkan aplikasi Anda dari konsol.
  4. Masukkan PIN atau kata sandi untuk memungkinkan aplikasi diluncurkan.
  5. Aplikasi akan diluncurkan.
  6. Tutup aplikasi.
  7. Luncurkan dari VS menggunakan F5, dan aplikasi akan diluncurkan tanpa permintaan.

Pada titik ini izin lengket sampai Anda mengeluarkan pengguna, bahkan jika Anda menghapus instalasi dan menginstal ulang aplikasi.

Ada jenis pengecualian lain yang hanya tersedia untuk akun anak. Akun anak mengharuskan induk untuk masuk untuk memberikan izin, tetapi ketika mereka melakukannya, induk memiliki opsi untuk memilih untuk Selalu mengizinkan anak meluncurkan aplikasi. Pengecualian tersebut disimpan di cloud dan akan bertahan bahkan jika anak keluar dan masuk kembali.

StorageFile.CopyAsync gagal menyalin file terenkripsi ke tujuan yang tidak terenkripsi

Ketika StorageFile.CopyAsync digunakan untuk menyalin file yang dienkripsi ke tujuan yang tidak dienkripsi, panggilan akan gagal dengan pengecualian berikut:

System.UnauthorizedAccessException: Access is denied. (Excep_FromHResult 0x80070005)

Ini dapat memengaruhi pengembang Xbox yang ingin menyalin file yang disebarkan sebagai bagian dari paket aplikasi mereka ke lokasi lain. Alasannya adalah bahwa konten paket dienkripsi pada Xbox dalam mode ritel, tetapi tidak dalam Mode Dev. Akibatnya, aplikasi mungkin tampak berfungsi seperti yang diharapkan selama pengembangan dan pengujian, tetapi kemudian gagal setelah diterbitkan dan kemudian diinstal ke Xbox ritel.

Port jaringan yang diblokir di Xbox One

aplikasi Platform Windows Universal (UWP) di perangkat Xbox One dibatasi dari pengikatan ke port dalam rentang [57344, 65535], inklusif. Meskipun pengikatan ke port ini mungkin tampak berhasil pada run-time, lalu lintas jaringan dapat dihentikan secara diam-diam sebelum mencapai aplikasi Anda. Aplikasi Anda harus mengikat port 0 sedapat mungkin, yang memungkinkan sistem untuk memilih port lokal. Jika Anda perlu menggunakan port tertentu, nomor port harus dalam rentang [1025, 49151], dan Anda harus memeriksa dan menghindari konflik dengan registri IANA. Untuk informasi selengkapnya, lihat Nama Layanan dan Registri Nomor Port Protokol Transportasi.

Cakupan WINDOWS Runtime API

Tidak semua WINDOWS Runtime API didukung di Xbox. Untuk daftar API yang kami tahu tidak berfungsi, lihat fitur UWP yang tidak didukung di Xbox. Jika Anda menemukan masalah dengan API lain, silakan laporkan di forum.

Anda akan menerima peringatan tentang sertifikat yang disediakan, mirip dengan cuplikan layar berikut, karena sertifikat keamanan yang ditandatangani oleh Konsol Xbox One Anda tidak dianggap sebagai penerbit tepercaya terkenal. Untuk mengakses Portal Perangkat Windows, klik Lanjutkan ke situs web ini.

Peringatan sertifikat keamanan situs web

Peringatan KnownFolders.MediaServerDevices di Xbox

Di Desktop, server media "dipasangkan" dengan PC, dan Layanan Asosiasi Perangkat terus melacak server mana yang saat ini on-line, sehingga kueri sistem file awal dapat segera mengembalikan daftar server yang dipasangkan yang saat ini online.

Di Xbox, tidak ada UI untuk menambahkan atau menghapus server, sehingga kueri sistem file awal akan selalu kembali kosong. Anda harus membuat kueri dan berlangganan peristiwa ContentsChanged dan merefresh kueri setiap kali Anda mendapatkan pemberitahuan. Server akan menipu masuk dan sebagian besar akan ditemukan dalam waktu 3 detik.

Contoh kode sederhana:

namespace TestDNLA {

    public sealed partial class MainPage : Page {
        public MainPage() {
            this.InitializeComponent();
        }

        private async void FindFiles_Click(object sender, RoutedEventArgs e) {
            try {
                StorageFolder library = KnownFolders.MediaServerDevices;
                var folderQuery = library.CreateFolderQuery();
                folderQuery.ContentsChanged += FolderQuery_ContentsChanged;
                IReadOnlyList<StorageFolder> rootFolders = await folderQuery.GetFoldersAsync();
                if (rootFolders.Count == 0) {
                    Debug.WriteLine("No Folders found");
                } else {
                    Debug.WriteLine("Folders found");
                }
            } catch (Exception ex) {
                Debug.WriteLine("Error: " + ex.Message);
            } finally {
                Debug.WriteLine("Done");
            }
        }

        private async void FolderQuery_ContentsChanged(Windows.Storage.Search.IStorageQueryResultBase sender, object args) {
            Debug.WriteLine("Folder added " + sender.Folder.Name);
            IReadOnlyList<StorageFolder> topLevelFolders = await sender.Folder.GetFoldersAsync();
            foreach (StorageFolder topLevelFolder in topLevelFolders) {
                Debug.WriteLine(topLevelFolder.Name);
            }
        }
    }
}

Lihat juga