我正在尝试获取所有能够发送短信的应用程序列表.
我找到了几个解决方案,建议使用PackageManager.
我认为要使用的Intent是ACTION_SEND,但是当我运行我的代码时,我总是收到一个空列表.
这是我的代码:
Intent mainIntent = new Intent(Intent.ACTION_SEND, null);
List<ResolveInfo> pkgAppsList = getApplicationContext().getPackageManager().queryIntentActivities( mainIntent, PackageManager.GET_RESOLVED_FILTER);
int size = pkgAppsList.size();
int i = 0;
Log.i(TAG, "Size: " + size);
for(ResolveInfo infos : pkgAppsList){
String name = infos.activityInfo.applicationInfo.loadLabel(getPackageManager()).toString();
Log.i(TAG, "name: " + name);
}
Run Code Online (Sandbox Code Playgroud)
任何的想法?
mat*_*ash 13
您尚未设置Intent的MIME类型.例如:
mainIntent.setType("text/plain");
Run Code Online (Sandbox Code Playgroud)
这将产生结果.但是,请注意,这不会完全返回"能够发送短信的应用程序",而是那些可以接受文本的内容,而不一定是为了发送消息(例如,Google Translate应用程序能够接收文本).