2015-10-15 3 views
0

Я попробовал прикреплять изображение из папки ресурсов к электронной почте. Но я не получил значительных успехов в том, что в то время как я был в состоянии чирикать изображение из актива с помощью ContentProviderНе удалось подключить файл к приложению электронной почты в android из папки с ресурсами

общественный класс AssetProvider простирается ContentProvider {

@Override 
public AssetFileDescriptor openAssetFile(Uri uri, String mode) throws FileNotFoundException 
{ 
    Log.v("HERREEE", "AssetsGetter: Open asset file"); 
    AssetManager am = getContext().getAssets(); 
    String file_name = uri.getLastPathSegment(); 
    if(file_name == null) 
     throw new FileNotFoundException(); 
    AssetFileDescriptor afd = null; 
    try 
    { 
     afd = am.openFd(file_name); 
    } 
    catch(IOException e) 
    { 
     e.printStackTrace(); 
    } 
    return afd;//super.openAssetFile(uri, mode); 
} 

@Override 
public String getType(Uri p1) 
{ 
    // TODO: Implement this method 
    return null; 
} 

@Override 
public int delete(Uri p1, String p2, String[] p3) 
{ 
    // TODO: Implement this method 
    return 0; 
} 

@Override 
public Cursor query(Uri p1, String[] p2, String p3, String[] p4, String p5) 
{ 
    // TODO: Implement this method 
    return null; 
} 

@Override 
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder, CancellationSignal cancellationSignal) 
{ 
    // TODO: Implement this method 
    return super.query(uri, projection, selection, selectionArgs, sortOrder, cancellationSignal); 
} 

@Override 
public Uri insert(Uri p1, ContentValues p2) 
{ 
    // TODO: Implement this method 
    return null; 
} 

@Override 
public boolean onCreate() 
{ 
    return false; 
} 

@Override 
public int update(Uri p1, ContentValues p2, String p3, String[] p4) 
{ 
    // TODO: Implement this method 
    return 0; 
} 

}

Код для размещения изображение из папки активов в твиттер:

Intent intent = new Intent(Intent.ACTION_SEND); 
      intent.putExtra(Intent.EXTRA_TEXT,"Test tweet"); 
      intent.setType("*/*"); 
      final PackageManager pm = mContext.getPackageManager(); 
      final List<?> activityList = pm.queryIntentActivities(intent, 0); 
      int len = activityList.size(); 
      boolean isFound = false; 
      for (int i = 0; i < len; i++) { 
       final ResolveInfo app = (ResolveInfo) activityList.get(i); 
       if(app.activityInfo.packageName.contains("com.twitter.android")){ 
        isFound = true; 
        final ActivityInfo activity=app.activityInfo; 
        final ComponentName name=new ComponentName(activity.applicationInfo.packageName, activity.name); 
        intent.addCategory(Intent.CATEGORY_LAUNCHER); 
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
        intent.setComponent(name); 
        Uri uri = Uri.parse("content://com.authority/file:///android_asset/image.png"); 
        intent.putExtra(android.content.Intent.EXTRA_STREAM, uri); 
        mContext.startActivity(intent); 
        break; 
       } 
      } 

Но при этом же для электронной почты он дает сообщение «не удается прикрепить пустой файл»

Email:

Intent intent = new Intent(Intent.ACTION_SEND); 
     intent.setType("*/*"); 
     intent.putExtra(Intent.EXTRA_SUBJECT, "Checkout MY Application"); 
     intent.putExtra(Intent.EXTRA_TEXT, "Test mail"); 
     Uri uri = Uri.parse("content://com.authority/file:///android_asset/image.png")); 
     intent.putExtra(android.content.Intent.EXTRA_STREAM,uri); 
     mContext.startActivity(intent); 

Просьба предложить.

Заранее спасибо.

+0

см. Edit1 моего ответа. –

ответ

0

Последние версии приложений для Facebook не позволяют вам делиться текстом с использованием намерений. Вы должны использовать Facebook SDK для публикации/публикации сообщения, или вы можете использовать только изображения или URL.

Пожалуйста, обратитесь к этому post, он говорит, что команда разработчиков Facebook намеренно закрыла предварительное заполнение сообщения, поскольку оно противоречит их политике.

Для получения дополнительной информации вы можете передать эти переполнению стека Вопросы:

  1. Share Text on Facebook from Android App via ACTION_SEND
  2. Android: How to share image with text on facebook via intent?

Edit 1: Существует работа вокруг этого SO Answer см.