2013-02-05 31 views
3

(1)我想发送或转让从gmail的Excel文件和 蓝牙连接只能在android移动。 (2)我的代码成功完成,文件传输完成。 (3)当我点击我的dataTransfer按钮,它显示多个,一个选项发送文件 (4)像Gmail和蓝牙和WiFi和消息传递和共享剪贴板 (5)我不希望有几个选项发送一份文件。 (6)我需要only-- Gmail和蓝牙两者共享选项..android通过excel文件转移到Gmail和蓝牙通过仅

(7)我碰到这样的: [?如何使用蓝牙在Android编程方式发送文件] [1]

我代码:

if (curCSV.getCount() != 0) { 
    Intent i = new Intent(Intent.ACTION_SEND); 
    i.setType("text/plain"); 
    i.putExtra(Intent.EXTRA_SUBJECT, "Diabetic Report File"); 
    i.putExtra(Intent.EXTRA_TEXT,getResources().getString(R.string.find_report)); 
    i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); 
    startActivity(Intent.createChooser(i, "Share Via")); 
} 
    else 
{ 
    Toast.makeText(getApplicationContext(), "no data",Toast.LENGTH_SHORT).show(); 
} 

注意:我的代码已成功运行。

注:我想,对,两个期权只有.. 请人修改我的代码,并帮助我..谢谢 提前..

+0

我也在寻找相同的解决方案! – Rasmus

+0

使用ResolveInfo类,我们可以从设备获取所有安装的应用程序,然后使用packagage名称匹配我们可以获得所需的应用程序。 – tamil

回答

1

(1)我发现输出我的问题。它的工作非常好。

我的代码:

List<Intent> targetedShareIntents = new ArrayList<Intent>(); 

String blue = "com.android.bluetooth" ; 
String gmail = "com.android.gmail" ; 

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); 
shareIntent.setType("text/plain"); 
List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(shareIntent, 0); 

if (!resInfo.isEmpty()) 
    { 

for (ResolveInfo resolveInfo : resInfo) { 

String packageName = resolveInfo.activityInfo.packageName; 
Log.v("hari", "packageName:"+packageName) ; 
Intent targetedShareIntent = new Intent(android.content.Intent.ACTION_SEND); 
targetedShareIntent.setType("text/plain"); 


if (resolveInfo.activityInfo.packageName.toLowerCase().contains("blue") || 
    resolveInfo.activityInfo.name.toLowerCase().contains("gmail")) { 

    targetedShareIntent. 
    putExtra(android.content.Intent.EXTRA_SUBJECT,"Diabetic Report File"); 
    targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, 
    "Hello, Please find attached your diabetic report"); 
Log.v("vivekawe",file.getAbsolutePath()+""); 
targetedShareIntent. 
    putExtra(android.content.Intent.EXTRA_STREAM, 
    Uri.fromFile(new File(file.getAbsolutePath()))); 


targetedShareIntent.setPackage(packageName); 

targetedShareIntents.add(targetedShareIntent); 

    Log.v("hari", "targetedShareIntent.setPackage(packageName);:" 
    +targetedShareIntent.setPackage(packageName)) ; 

    } 

    Log.v("hari", "After If targetedShareIntents:"+targetedShareIntents) ; 
    } 
    Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), 
    "Select app to share"); 
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents. 
    toArray(new Parcelable[]{})); 
    Log.v("hari", "chooserIntent:"+chooserIntent) ; 
    startActivity(chooserIntent); 
    } 

注: 本准则可以正常使用。

+2

谢谢。对我有用。我得到了答案 – tamil