3

(1) Android モバイルでのみ、Gmail および Bluetooth 接続から Excel ファイルを送信または転送しようとしています。(2) My Code が成功し、ファイル転送が完了しました。(3) dataTransfer ボタンをクリックすると、ファイルを送信するための複数のオプションが表示されます (4) gmail、bluetooth、wifi、メッセージング、クリップボードへの共有など (5) ファイルを送信するための複数のオプションは必要ありません。(6) 2 つの共有オプションだけが必要です -- gmail と bluetooth..

(7) 私はこれに出くわしました: [Android で Bluetooth を使用してファイルをプログラムで送信する方法は?][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();
}

注: 私のコードは正常に実行されています。

注:2つの共有オプションのみが必要です..誰かが私のコードを変更して助けてください..ありがとうアドバンス..

4

1 に答える 1

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);
   }

注:このコードは完全に機能しています。

于 2013-02-06T05:20:52.993 に答える