2013-02-05 30 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