Smobiler上海石磨_.NET移动开发平台

标题: 在构造函数中初始化蓝牙插件报错 [打印本页]

作者: bigjimmy8257    时间: 2019-7-17 00:19
标题: 在构造函数中初始化蓝牙插件报错
各位专家,

我想在窗体的构造函数中做初始化的时候,重启蓝牙模块,但是报错。

下面是代码:

partial class Form1: Smobiler.Core.Controls.MobileForm
{

        public Init() : base()
        {
            //初始化的时候先关闭手机蓝牙模块,然后再开启
            bluetooth1.Close((obj, args) =>
            {
                bluetooth1.Open();
            });

            //This call is required by the SmobilerForm.
            InitializeComponent();
        }


        private void Form1_Load(object sender, EventArgs e)
        {
             。。。。
        }
}
上面代码中的 bluetooth1 是在窗体设计的时候加入的 插件。

我之所以没有将初始化蓝牙模块的代码放在窗体的Load事件中的原因是 在Load中就需要执行 bluetooth1.Search() 了。

不知道我上述想法是否可行? 请指教

大杰米

作者: bigjimmy8257    时间: 2019-7-17 08:31
本帖最后由 bigjimmy8257 于 2019-7-17 09:08 编辑

补充一下,如果我将 蓝牙模块的关闭和开启放在 Form1_Load 中,是可以的。但是,在调试环境下,如果此时重新返回到 应用中心(点右上角的两条短杠线), 然后重新连接 (我用它来模拟APP退出后重新进入的场景),则会出现错误,Toast提示“收到非法数据”, 然后出现 "网络连接失败" (截图中的‘应用初始化’是我在 Form1_Load 中添加的  this.Form.ShowLoadingScreen("应用初始化", true); ].
我也在其他一些场景下,做重新连接的时候,遇到过‘收到非法数据’的情况,不知道这是出现了什么问题, 盼指正。

大杰米

作者: Lula.Jin    时间: 2019-7-18 09:52
写在MobileGlobal.cs下OnSessionConnect中吧,OnSessionStart在会话第一次开始时触发,之后OnSessionConnect在会话重新连接时触发
作者: bigjimmy8257    时间: 2019-7-18 10:29
Luna,

谢谢,我回去尝试一下。




欢迎光临 Smobiler上海石磨_.NET移动开发平台 (https://www.smobiler.com/) Powered by Discuz! X3.2