0

私のアプリは、WhatsApp、電子メール、SMS などを介して TextView でテキストを送信できる必要があります。そのためには、インストールされているメッセージング アプリケーションのリストが必要です。PackageManger で試してみましたが、すべてのアプリを入手できます。Instant Messaging アプリだけを入手するにはどうすればよいですか?

これは、インストールされているアプリを一覧表示する私のコードです。

PackageManager packageManager=this.getPackageManager(); 
    List<PackageInfo> applist=packageManager.getInstalledPackages(0);
    Iterator<PackageInfo> it=applist.iterator();
    while(it.hasNext()){
    PackageInfo pk=(PackageInfo)it.next();
    if(PackageManager.PERMISSION_GRANTED==(packageManager.checkPermission(Manifest.permission.INTERNET, pk.packageName)& packageManager.checkPermission(Manifest.permission.RECEIVE_SMS, pk.packageName))) //checking if the package is having INTERNET permission
    {
    myList.add(""+pk.applicationInfo.loadLabel(packageManager));
    }
    }
4

2 に答える 2

1

必要なアプリのリストをなんとか取得できたとしたら、それらをどうするつもりですか? 実行されたアクションに応じて、ユーザーがテキストを処理するアプリケーションを選択できるように、アンドロイドにアプリのリストをユーザーに提示させる必要があると思います。幸いなことに、これは Android の組み込み機能です。電子メールを送信するための私の機能は次のとおりです。

public static void StartEmailIntent (Context cx, String EmailAddress){
    Intent email = new Intent(Intent.ACTION_SEND);

    email.setType("plain/text");
    email.putExtra(Intent.EXTRA_EMAIL, new String[]{EmailAddress});

    cx.startActivity(Intent.createChooser(email, cx.getString(R.string.dlg_sendmail_selectortitle)));
}

ご覧のとおり、Intent.ACTION_SEND をアクションとして設定し、Intent.createChooser android を使用して、タイプとインテントのエクストラに基づいてそのアクションを処理できるアプリケーションのリストを作成します。SMS、電話などの他のアクションを適応させることは難しくありません。詳細については、こちらを参照してください。コンテンツを他のアプリに送信する

お役に立てれば...

于 2012-05-08T19:44:15.950 に答える
0

Ice Cream Sandwich をターゲットにしている場合は、ShareActionProviderを使用する必要があります。そこには、あなたが望むものを共有する方法のリストが表示されます。

このandroid-developer-blogpost を読んで、意図を介して共有する方法を説明することもできます。たとえば、メール共有の場合:

Intent intent=new Intent(android.content.Intent.ACTION_SEND);
intent.setType("text/plain");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);

// Add data to the intent, the receiving app will decide what to do with it.
intent.putExtra(Intent.EXTRA_SUBJECT, “Some Subject Line”);
intent.putExtra(Intent.EXTRA_TEXT, “Body of the message, woot!”);
于 2012-05-08T18:45:35.047 に答える