Bluetooth Opp发送文件

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?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值