代码之家  ›  专栏  ›  技术社区  ›  Dan Dyer

使用蓝牙操作发送

  •  2
  • Dan Dyer  · 技术社区  · 14 年前

    我用的是安卓系统 Intent ACTION_SEND EXTRA_STREAM 通过 ContentProvider

    这款设备是一款运行Android2.1的HTC传奇。设备可以通过蓝牙与我的计算机共享图像,只是在我的应用程序调用时不能。我收到一条祝酒短信,上面有以下文字:

    蓝牙共享:未发送未知文件

    logcat输出的信息不是特别丰富。唯一的错误级别条目如下所示,它似乎在 query 内容提供者 被调用(它本身由 openFileHelper 方法)。没有stacktrace。

    E/BluetoothOppSendFileInfo(  337): scheme: content, authority: mydomain.myapp.myprovider
    

    我搜遍了 Android Bluetooth source code 我找不到这个非格式化的日志消息是在哪里写的。

    也许我的 内容提供者

    有人知道我可能不知道的蓝牙特定问题吗?

    为了它的价值,这里是 看起来像:

    @Override
    public Cursor query(Uri uri,
                        String[] projection,
                        String selection,
                        String[] selectionArgs,
                        String sortOrder)
    {
        if (uri.equals(CONTENT_URI))
        {
            String[] columns = projection == null
                             ? new String[]{"uri", "mime_type", "_data"}
                             : projection;
            MatrixCursor cursor = new MatrixCursor(columns);
            cursor.addRow(getColumns(columns));
            return cursor;
        }
        throw new IllegalArgumentException("Unsupported URI");
    }
    
    @Override
    public ParcelFileDescriptor openFile(Uri uri,
                                         String mode) throws FileNotFoundException
    {
        return openFileHelper(uri, mode);
    }
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   Dan Dyer    14 年前

    在将HTC Legend手机升级到Android2.2(Froyo)后,问题已经消失,这表明该手机的前一版本软件中的蓝牙支持存在问题。