7

La mia app ha bisogno di un calendario interno. Posso creare un nuovo calendario come questo:Come nascondere il calendario della mia app dall'app di calendario integrata?

var store = await AppointmentManager.RequestStoreAsync(AppointmentStoreAccessType.AppCalendarsReadWrite); 
var cacheCalendar = await store.CreateAppointmentCalendarAsync("unique name here"); 

Questo succede e ho un nuovo calendario. Ma questo calendario è visibile nell'app calendario integrata del telefono. Non voglio che questo calendario sia visibile poiché è destinato alla contabilità interna.

così cerco di nascondere il calendario in questo modo:

var store = await AppointmentManager.RequestStoreAsync(AppointmentStoreAccessType.AppCalendarsReadWrite); 
var cacheCalendar = await store.CreateAppointmentCalendarAsync("unique name here"); 
cacheCalendar.IsHidden = true; // <---- make calendar hidden 
await cacheCalendar.SaveAsync(); // <---- save; error here 

Quando si chiama SaveAsync ottengo la seguente eccezione:

accesso è negato. (Eccezione da HRESULT: 0x80070005 (E_ACCESSDENIED))?"

Perché non posso nascondere il mio calendario dal telefono app calendario incorporato è questa una limitazione non documentato Ci sono altri modi per fare questo

??

(Nota: ho provato questo su un Windows 10 mobile nonché del desktop Win 10 - lo stesso errore.)

Modifica/Aggiunta: Dal momento che Anthony ha scoperto la proprietà IsHidden è documentata come di sola lettura in MSDN qui è uno screenshot di Visual Studio che mostra il setter pubblico (che lo rende compilabile, gestiscono e apparentemente legittimo per chiamare):?

IsHidden property has setter

(Il target app Win 10 Corporatura 10586 - forse è nuovo, ma non finito)

+1

Hi Heinrich, grazie per aver segnalato questo, in effetti non dovresti essere in grado di impostare IsHidden. L'ho inoltrato a Microsoft e hanno archiviato un BR internamente, che è collegato a questo elemento UV https://wpdev.uservoice.com/forums/110705-universal-windows-platform/suggestions/15278775-appointmentcalendar-ishidden- setter-getta-a-Inval. –

+0

@Lance Nessun problema e grazie mille. Triste anche se l'API mi ha tradito. –

+1

Puoi confermare se stai utilizzando l'SDK 106586 o stai utilizzando l'SDK di anteprima 14393? Sembra che ci sia un'opzione disponibile per te, che condividerò una volta ricevuta la conferma dalla squadra. –

risposta

1

Questo è stato un bug nel 10586, ma se si sta utilizzando 14393 SDK è possibile utilizzare IsHidden se la vostra applicazione ha diritti per il calendario senza un InvalidAccessException

https://wpdev.uservoice.com/forums/110705-universal-windows-platform/suggestions/15278775-appointmentcalendar-ishidden-setter-throws-a-inval

+0

Grazie per la conferma, piacere di vederti ragazzi qui intorno. Nell'era delle API in rapido sviluppo, questo tipo di problemi sarà una sfida per piattaforme come Stack Overflow. Ho votato sul problema di Uservoice e spero di nascondere il mio calendario un giorno;) –

+0

Sì, è bello vederti ragazzi qui intorno. Mi chiedo come abbiano scoperto così in fretta ;-) –

+0

@Clint Dopo aver aggiornato Win 10 in Anniversary e aver cambiato l'SDK in 10.0.14393.0 il problema persiste, stessa eccezione. DeleteAsync() mi dà anche una InvalidAccessException. Cosa potrebbe essere sbagliato qui? –

4

Onestamente mi sorprende questa compila ancora.

According to the MSDN documentation per AppointmentCalandar

IsHidden-sola lettura - Ottiene se l'AppointmentCalendar è nascosto nella del dispositivo calendario incorporato UI

Questo è un read only property and can't be set.

Per quanto riguarda la tua domanda, dopo aver esaminato attentamente la documentazione sembra che questa sia una svista nell'API. Vorrei sollevare questa preoccupazione sui forum MSDN.

+1

Hai ragione! I documenti affermano che è di sola lettura. Compilare, però - Ho aggiunto uno screenshot da Visual Studio. Ma il comportamento suggerisce che la documentazione è corretta a questo punto. Buona pesca. Dovrei cercare di ottenere un input ufficiale su questo. –

Problemi correlati