****有关onActivityResult提前调用的问题
来源:互联网 发布:python是面向对象吗 编辑:程序博客网 时间:2024/06/02 09:43
http://blog.csdn.net/danericola/article/details/7532425
今天准备在自己的游戏中加入蓝牙功能,于是将Android SDK Sample中的BluetoothChat看了看,发现基本上大部分的代码都可以复用,于是乎乾坤大挪移了一番,总算没有错误了,可是在我的Nexus上一运行,悲剧了,蓝牙明明打开了,可是却不能进入到DeviceListActivity,看了看代码,我是在onActivityResult中判断蓝牙打开成功后,才会启动DeviceListActivity,难道这么简单的代码都会出错吗?没办法只好调试一下了,一调试才发现,原来调用startActivityForResult(enableIntent, REQUEST_ENABLE_BLUETOOTH)后,请求开启蓝牙的对话框刚弹出来,onActivityResult函数就已经被调用了,而且其resultCode还是Activity.RESULT_CANCELED,而当在对话框上选择开启蓝牙后,onActivityResult函数反而不会被调用了,我了个擦,这是怎么回事。
代码如下:
- private void enableBluetooth() {
- if (D) Log.d(TAG, "enable bluetooth");
- Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
- startActivityForResult(enableIntent, REQUEST_ENABLE_BLUETOOTH);
- }
- private void selectDevice() {
- Intent serverIntent = new Intent(Linkage.this, BtDeviceList.class);
- startActivityForResult(serverIntent, REQUEST_CONNECT_DEVICE);
- }
- private void enterVsMode() {
- if (mBtAdapter == null) return;
- if (mBtAdapter.isEnabled()) {
- selectDevice();
- } else {
- enableBluetooth();
- }
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- switch (requestCode) {
- case REQUEST_ENABLE_BLUETOOTH:
- // When the request to enable Bluetooth returns
- if (resultCode == Activity.RESULT_OK) {
- selectDevice();
- } else {
- // User did not enable Bluetooth or an error occured
- Toast.makeText(this, R.string.bt_open_failed, Toast.LENGTH_SHORT).show();
- }
- case REQUEST_CONNECT_DEVICE:
- // When DeviceListActivity returns with a device to connect
- if (resultCode == Activity.RESULT_OK) {
- // Get the device MAC address
- String address = data.getExtras().getString(BtDeviceList.EXTRA_DEVICE_ADDRESS);
- // Get the BLuetoothDevice object
- BluetoothDevice device = mBtAdapter.getRemoteDevice(address);
- // Attempt to connect to the device
- mBtService.connect(device);
- }
- break;
- }
- }
0 0
- 有关onActivityResult提前调用的问题
- 有关onActivityResult提前调用的问题
- ****有关onActivityResult提前调用的问题
- ****有关onActivityResult提前调用的问题(转)
- 有关onActivityResult提前调用的问题(转)
- Fragment中 onActivityResult不响应 + 有关onActivityResult提前调用的问题
- Fragment中 onActivityResult不响应 + 有关onActivityResult提前调用的问题
- android关于onActivityResult提前调用的问题
- onActivityResult被提前调用的问题和onActivityResult不被启动的问题
- onActivityResult被提前调用
- Android onActivityResult被提前调用
- Android onActivityResult被提前调用
- 提前调用onActivityResult和四种launchMode的关系
- 完美解决Android中onActivityResult提前执行调用的一系列问题
- onActivityResult 不调用的问题
- 调用startActivityForResult,onActivityResult无响应的问题
- 调用startActivityForResult,onActivityResult无响应的问题
- 调用startActivityForResult,onActivityResult无响应的问题
- 路由器题目
- IOS访问限制密码忘记解决方案
- 在Eclipse中使用JUnit4进行单元测试(高级篇)
- java连接linux中mysql出现:Access denied for user 'root'@'192.168.91.1' (using password: YES)
- 【LeetCode】Path Sum
- ****有关onActivityResult提前调用的问题
- 重定义NSLog
- struts2.1.8启动 FATAL ERROR STARTING UP STRUTS-SPRING INTEGRATION
- 学习鸟哥的Linux私房菜笔记(10)——bash2
- onCreateOptionsMenu的作用
- js时间戳转为日期格式
- 解决sqlserver2008在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQ
- 正则表达式匹配方式
- 架构设计的UML图形思考