Bluetooth Opp发送文件
2013-12-26 13:50
204 查看
Intent intent = new Intent(Intent.ACTION_SEND); intent.setClassName("com.android.bluetooth","com.android.bluetooth.opp.BluetoothOppLauncherActivity"); intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/Ludimate.sisx")); // imageUri set previously intent.setType("**"); values.put("destination", mDevice.getAddress()); values.put("direction", 0); values.put("VISIBILITY", 1); values.put("is_push", 1); contxt.getContentResolver().insert(CONTENT_URI, values); Intent intent = new Intent( "android.bluetooth.devicepicker.action.DEVICE_SELECTED"); intent.setClassName("com.android.bluetooth", "com.android.bluetooth.opp.BluetoothOppReceiver"); intent.putExtra(BluetoothDevice.EXTRA_DEVICE, mDevice); sendBroadcast(intent); // Intent intent = new Intent(Intent.ACTION_SEND); // intent.setClassName("com.android.bluetooth","com.android.bluetooth.opp.BluetoothOppLauncherActivity"); // intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/Ludimate.sisx")); // // imageUri set previously // intent.setType("*/*"); // startActivity(intent);
我们在实现共享功能的时候,通常使用的是Intent intent = new Intent(Intent.ACTION_SEND)这样的代码,这种情况会弹出一个共享功能的选择界面,比如通过微博、蓝牙、邮件等等很多途径,现在我要实现的是跳过这个选择界面,直接选用蓝牙途径进行共享文件,代码如下
/** 蓝牙功能包名 /
private final String mBluetoothPackageName = "com.android.bluetooth"; /* 蓝牙功能操作类名 */ private final String mBluetoothClassName = "com.android.bluetooth.opp.BluetoothOppLauncherActivity"; mSelfApkPath = getSelfAPKPath(mSelfApkPackage); File file = new File(mSelfApkPath); Intent intent = new Intent(); try { intent.setAction(android.content.Intent.ACTION_SEND); intent.setType("*/*"); // 以下此行代码功能为直接指向系统蓝牙搜索设备界面,去掉即跳转至客户端选择分享途径 intent.setClassName(mBluetoothPackageName, mBluetoothClassName); intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); startActivity(intent); } catch (Exception e) { Toast.makeText(this, "该设备可能不支持蓝牙功能...",Toast.LENGTH_SHORT).show(); }
在实现过程中,手中的测试机器在执行到startActivity(intent)时并不会抛异常,而后面无意中却发现有的手机在这句程序居然抛出了异常,异常信息如下:
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.bluetooth/com.android.bluetooth.opp.BluetoothOppLauncherActivity}; have you declared this activity in your AndroidManifest.xml?
相关文章推荐
- android -- 蓝牙 bluetooth (四)OPP文件传输
- 有关Android Bluetooth - OBEX OPP文件传送
- 兔子-蓝牙 bluetooth (四)OPP文件传输
- ZT android -- 蓝牙 bluetooth (四)OPP文件传输
- 有关Android Bluetooth - OBEX OPP文件传送
- Windows Mobile下通过蓝牙(Bluetooth)发送大文件的实现
- android -- 蓝牙 bluetooth (四)OPP文件传输
- android -- 蓝牙 bluetooth (四)OPP文件传输
- Windows Mobile下通过蓝牙(Bluetooth)发送大文件的实现
- Android BluetoothProfile之OPP(蓝牙文件分享流程)
- android4.2 蓝牙 bluetooth第4节:OPP文件传输
- android -- 蓝牙 bluetooth (四)OPP文件传输
- 有关Android Bluetooth - OBEX OPP文件传送
- 通过 http 协议上传文件(rfc1867协议概述,jsp 应用举例,客户端发送内容构造)
- Android将程序崩溃信息保存本地文件发送至服务器
- 基于XMPP协议的即时聊天工具之发送文件
- PasswordRecovery控件发送邮件配置文件web.config设置
- HttpClient 使用get方式发送数据到服务器并下载服务器文件
- linux下c语言编程,使用socket发送文件和数据
- javaMail直接发送附件,无须生成临时文件