Android 与其他文本和图像共享意图
我正在尝试与Andriod中的另一个应用程序共享信息 我试过了,但效果很慢。有更好的方法吗Android 与其他文本和图像共享意图,android,Android,我正在尝试与Andriod中的另一个应用程序共享信息 我试过了,但效果很慢。有更好的方法吗 try { Uri imageUri = null; try { imageUri = Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver(), bitmap, null, nu
try {
Uri imageUri = null;
try {
imageUri = Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver(),
bitmap, null, null));
} catch (Exception e) {e.printStackTrace();}
shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_TEXT, contentText);
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
shareIntent.setType("*/*");
} catch (android.content.ActivityNotFoundException ex) {
ex.printStackTrace();
}
new PopUpShareDialog().new Launchables(context, dialogShare, socialGv).execute();
class Launchables extends AsyncTask<String, String, JSONObject>{
ProgressDialog progressDialog;
Context context;
List<ResolveInfo> launchables;
Dialog dialogShare;
ExpandableHeightGridView socialGv;
public Launchables(Context context, Dialog dialogShare, ExpandableHeightGridView socialGv){
this.dialogShare = dialogShare;
this.socialGv = socialGv;
this.context = context;
}
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(context, "", "" + context.getString(R.string.popup_loaded));
}
@Override
protected JSONObject doInBackground(String... params) {
// TODO Auto-generated method stub
launchables = context.getPackageManager().queryIntentActivities(shareIntent, 0);
return null;
}
@Override
protected void onPostExecute(JSONObject json) {
progressDialog.dismiss();
Log.d("", "PackageManager");
Collections.sort(launchables, new ResolveInfo.DisplayNameComparator(context.getPackageManager()));
shareSocAdapter = new ShareSocialsAdapter(context.getPackageManager(), launchables, context);
socialGv.setAdapter(shareSocAdapter);
socialGv.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
ResolveInfo launchable = shareSocAdapter.getItem(position);
ActivityInfo activity = launchable.activityInfo;
ComponentName name = new ComponentName(activity.applicationInfo.packageName, activity.name);
shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
shareIntent.setComponent(name);
context.startActivity(shareIntent);
}
});
dialogShare.show();
}
}
试试看{
Uri-imageUri=null;
试一试{
imageUri=Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver()),
位图,空,空);
}catch(异常e){e.printStackTrace();}
shareIntent=新的Intent();
shareIntent.setAction(Intent.ACTION\u SEND);
shareIntent.putExtra(Intent.EXTRA_TEXT,contentText);
shareIntent.putExtra(Intent.EXTRA_流,imageUri);
shareIntent.setType(“*/*”);
}捕获(android.content.ActivityNotFoundException ex){
例如printStackTrace();
}
新的PopUpShareDialog()。新的启动项(上下文、对话共享、社交GV)。执行();
类Launchables扩展了异步任务{
进行对话进行对话;
语境;
列出可发射物品;
对话共享;
可扩展高度网格视图社会GV;
公共启动(上下文上下文、对话框共享、ExpandableHeightGridView社交GV){
this.dialogShare=dialogShare;
this.socialGv=socialGv;
this.context=上下文;
}
@凌驾
受保护的void onPreExecute(){
progressDialog=progressDialog.show(context,“,”+context.getString(R.string.popup_-loaded));
}
@凌驾
受保护的JSONObject doInBackground(字符串…参数){
//TODO自动生成的方法存根
launchables=context.getPackageManager().QueryInputActivities(shareIntent,0);
返回null;
}
@凌驾
受保护的void onPostExecute(JSONObject json){
progressDialog.disclose();
Log.d(“,“PackageManager”);
Collections.sort(launchables、new ResolveInfo.DisplayNameComparator(context.getPackageManager());
shareSocAdapter=新的ShareSocialAdapter(context.getPackageManager(),launchables,context);
socialGv.setAdapter(shareSocAdapter);
socialGv.setOnItemClickListener(新的android.widget.AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(适配器视图arg0、视图arg1、内部位置、长arg3){
ResolveInfo launchable=shareSocAdapter.getItem(位置);
ActivityInfo activity=launchable.ActivityInfo;
ComponentName=新组件名(activity.applicationInfo.packageName,activity.name);
shareIntent.addCategory(Intent.CATEGORY_启动器);
shareIntent.setFlags(Intent.FLAG_活动_新任务| Intent.FLAG_活动_重置_任务_,如果需要);
setComponent(名称);
背景。开始触觉(共享意图);
}
});
dialogShare.show();
}
}
你说的“我试过了,但它运行得很慢”是什么意思?tupie voprosi ne zadavay,vrode je ponyatno napisal blyaTry删除集合。排序(launchables,new ResolveInfo.DisplayNameComparator(context.getPackageManager())。这将在内部调用多个ResolveInfo.loadLabel函数,这会占用太多时间。