首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EmailComposeTask/CameraCaptureTask/PhotoChooserTask与WP7 ApplicationIdleDetectionMode

EmailComposeTask/CameraCaptureTask/PhotoChooserTask与WP7 ApplicationIdleDetectionMode
EN

Stack Overflow用户
提问于 2013-01-13 21:31:07
回答 1查看 376关注 0票数 1

我试图在这个WP7应用程序中找到解决方案崩溃:

  1. 创建新的WP7应用程序。
  2. 允许应用程序在锁定的屏幕中运行: // in App() PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;
  3. 在MainPage位置按钮中
  4. 添加按钮代码,运行CameraCaptureTask: var cameraCapture =新CameraCaptureTask();cameraCapture.Completed += cameraCapture_Completed;cameraCaptureTask.Show();
  5. 用硬件按钮锁定屏幕。
  6. 解锁屏幕崩溃:-(

例外:

代码语言:javascript
复制
    System.Runtime.InteropServices.COMException - "0x8000ffff"

StackTrace:

代码语言:javascript
复制
    at Microsoft.Phone.Execution.NativeEmInterop.NotifyFullObscurityChanged(Boolean isObscured)
    at Microsoft.Phone.Shell.PhoneApplicationService.OnFullObscurityChanged(Object sender, LockStateChangeEventArgs e)
    at Microsoft.Phone.Shell.Interop.ShellPageManager.ShellPageCallback_OnLockStateChange(Object source, LockStateChangeEventArgs e)
    at Microsoft.Phone.Shell.Interop.ShellPageCallback.FireOnLockStateChange(Boolean fLocked)

它崩溃在真正的硬件(三星欧姆尼亚W) -没有模拟器。我在EmailComposeTask/CameraCaptureTask/PhotoChooserTask上做了测试--总是崩溃。

编辑:

破解应用程序的步骤:

  1. 项目模板: Windows应用程序
  2. 目标Windows操作系统版本: Windows OS7.1

App.xaml.cs --在应用程序构造函数的末尾添加了一行:

代码语言:javascript
复制
    [...]
    public App()
    {
        UnhandledException += Application_UnhandledException;
        InitializeComponent();
        InitializePhoneApplication();

        if (System.Diagnostics.Debugger.IsAttached)
        {
            Application.Current.Host.Settings.EnableFrameRateCounter = true;
            PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
        }

        PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;
    }
    [...]

MainPage.xaml,添加按钮:

代码语言:javascript
复制
    <Button Content="Button" HorizontalAlignment="Left" Margin="361,262,0,0" VerticalAlignment="Top" Click="Button_Click_1"/>

MainPage.xaml.cs -添加的方法:

代码语言:javascript
复制
    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        PhotoChooserTask objPhotoChooser = new PhotoChooserTask();
        objPhotoChooser.Completed += objPhotoChooser_Completed;
        objPhotoChooser.Show();
    }

    private void objPhotoChooser_Completed(object sender, PhotoResult e)
    {
    }

连接你的手机,编译和部署程序到电话,断开电话(PhotoChooserTask不与Zune一起工作)。在设备中运行程序,单击“按钮”,用硬件按钮锁定屏幕,然后解锁-崩溃并关闭程序。您可以使用WPConnect而不是Zune来调试。

EN

回答 1

Stack Overflow用户

发布于 2013-01-14 21:14:42

我已经在WP8设备(Lumia820开发者版)上测试过这一点,并且工作正常。我能看到的唯一问题是,当你解锁设备,你不是回到启动屏幕,而是应用屏幕。我猜想,这个问题与在WP7和WP8上的启动程序的低级别实现中的不同审批者有关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14308393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档