Prática recomendada: adicionar seu aplicativo ao menu de compartilhamento do Android

Meu aplicativo envia arquivos (todos os tipos mime) através de uma conexão TCP e, portanto, eu queria que meu aplicativo apareça no menu Android Share.

Adicionei os seguintes filtros de intenção à minha atividade emAndroidManifest.xml

<intent-filter ><!--intent filter for single file sharing-->
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="*/*" />
</intent-filter>
<intent-filter ><!--intent filter for sharing multiple files-->
    <action android:name="android.intent.action.SEND_MULTIPLE" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="*/*" />
</intent-filter>

Agora eu adicionei isso aoActivity que será lançado clicando na ação Compartilhar

Intent intent = getIntent();
if (Intent.ACTION_SEND.equals(intent.getAction())) {
    Uri uri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
    if (uri != null) {
        fileset = new HashSet();
        fileset.add(getPathfromUri(uri));
    }
} else if (Intent.ACTION_SEND_MULTIPLE.equals(intent.getAction())) {
    ArrayList<Uri> uris = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
    if (uris != null) {
        fileset = new HashSet();
        for(Uri uri : uris) {
            fileset.add(getPathfromUri(uri));
        }
    }
}

Eu uso esse método para gerar os caminhos absolutos dos arquivos que devem ser compartilhados.

public String getPathfromUri(Uri uri) {
    if(uri.toString().startsWith("file://")) {
         return uri.getPath();
    }
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    startManagingCursor(cursor);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    String path= cursor.getString(column_index);
    //cursor.close();
    return path;
}

O método acima recupera corretamente o caminho absoluto de Imagens / Vídeos e outros arquivos. Existe algo que eu perdi ou existe uma maneira melhor de fazer isso?

Em adição aoShare menu, existe umSend Via menu no meu telefone.

Existe uma maneira de colocar meu aplicativo nessa lista?

questionAnswers(3)

yourAnswerToTheQuestion