在用Qt开发android应用的时候,有一个需求是通过调用android原生接口去实现图片分享功能,原理很简单,首先在java文件中用android接口封装一个分享功能的方法,然后在C++中调用QAndroidJniObject::callStaticMethod即可。
首先,如果是一个新创建的Qt工程,需要创建一个AndroidManifest.xml文件,创建过程不再赘述,然后创建一个Java的类,继承于
publicclassMainActivityextendsorg.qtproject.qt5.android.bindings.QtActivity
然后定义一个公有的静态函数
/**
* 分享功能
*/
//分享单张图片
public static void shareImage(String title,
String path, QtActivity activity)
{
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/png");
File file = new File(path);
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
activity.startActivity(Intent.createChooser(share, title));
}其中,title是分享对话框的显示标题,path是要分享的图片的保存位置
当然,还可以分享单独的文字内容,如下
pub