android definir imagem como ícone de contato / papel de parede

Eu escrevi meu próprio ImageViewer e agora quero terDefinir como funcionalidade como no ImageViewer nativo do Android. Eu agora é possível desde que o Facebook tem. Anexei uma captura de tela para ficar mais claro.

P.S. Quero dar uma explicação mais detalhada do que está errado. Depois de escolher "Ícone de contato" no menu, a lista dos meus contatos é exibida. Quando escolho um contato, a força do aplicativo é fechada. Se eu escolher "Tela inicial / Bloqueio de tela", ele abrirá a galeria do meu telefone. Aqui está o meu trecho de código:

                Bitmap icon = mBitmap;
                Intent setAs = new Intent(Intent.ACTION_ATTACH_DATA);
                setAs.setType("image/jpg");
                ByteArrayOutputStream bytes = new ByteArrayOutputStream();
                icon.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
                File f = new File(Environment.getExternalStorageDirectory() + File.separator + "/my_tmp_file.jpg");
                try {
                    f.createNewFile();
                    FileOutputStream fo = new FileOutputStream(f);
                    fo.write(bytes.toByteArray());
                } catch (IOException e) {                       
                    e.printStackTrace();
                }
                setAs.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/my_tmp_file.jpg"));
                startActivity(Intent.createChooser(setAs, "Set Image As"));

Também adicionei as permissões consequentes ao meu manifesto e sou capaz de gravar minha imagem no cartão SD do telefone.

questionAnswers(5)

yourAnswerToTheQuestion