2015-10-05 83 views
2

中想要使用Android Intent.ACTION_SEND以快速共享某些內容的Intent.ACTION_SEND中選擇了哪個意圖。我寫了一些代碼,我可以顯示自定義剪切對話框 但我想檢查意圖選擇Intent.ACTION_SEND,例如,如果我從Gmail發送一些文件我想顯示Toast消息(Gmail等發送的消息) this是我的來源如何知道在Android

PackageManager pm = mActivity.getPackageManager(); 


    Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); 
    shareIntent.setType("image/jpeg"); 
    Uri photoUri = Uri.parse(path); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, "Downloading your app"); 

    shareIntent.putExtra(Intent.EXTRA_STREAM, photoUri); 


    List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0); 
    for (final ResolveInfo app : activityList) 
    { 
     Log.e("Application pachage",app.activityInfo.name +"package"); 
     if ((app.activityInfo.name).contains("Bluetooth")) 
     { 
      Log.e("Application pachage","mee" +"package"); 
      Toast.makeText(mActivity,"Message sent from Bluetooth",Toast.LENGTH_SHORT).show(); 
      final ActivityInfo activity = app.activityInfo; 
      final 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); 
      mActivity.startActivity(shareIntent); 
      break; 
     } 
    } 

那麼,有沒有可能這樣做?

回答

2

只有在Android 5.1及更高版本中,如果您使用the three-parameter flavor of createChooser(),那麼您可以提供一個IntentSender,並通知您選擇該選項。否則,您需要推出自己的選擇器式用戶界面,然後使用用戶的選擇制定明確的Intent以將用戶路由到所請求的活動。