如何加载支持音频和视频文件的已安装应用程序


 public class MainActivity extends Activity {
 private static final String TAG = "MainActivity";
private MusicIntentReceiver myReceiver;
Context context = MainActivity.this;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    myReceiver = new MusicIntentReceiver();
}
@Override
public void onResume() {
    IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
    registerReceiver(myReceiver, filter);
    super.onResume();
}
private class MusicIntentReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_HEADSET_PLUG)) {
            int state = intent.getIntExtra("state", -1);
            switch (state) {
            case 0:
                Log.d(TAG, "Headset is unplugged");
                Toast.makeText(MainActivity.this, "Headset is unplugged", Toast.LENGTH_SHORT).show();
                break;
            case 1:
                Toast.makeText(MainActivity.this, "Headset is plugged", Toast.LENGTH_SHORT).show();
                 PackageManager pm = getPackageManager();
                /*List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
                for (ApplicationInfo packageInfo : packages) {
                    Toast.makeText(MainActivity.this,"Installed package :" + packageInfo.packageName, Toast.LENGTH_SHORT).show();
                    Toast.makeText(MainActivity.this, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName), Toast.LENGTH_SHORT).show();
                    Log.d(TAG, "Installed package :" + packageInfo.packageName);
                    Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName)); 
                }*/
                Intent intent1 = new Intent(Intent.ACTION_VIEW);
                Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,"1"); 
                intent1.setData(uri);
                List<ResolveInfo> playerList ;
                playerList = pm.queryIntentActivities(intent1, 0);
                if( playerList != null){
                    for (int i = 0 ; i < playerList.size() ; i++){
                        //playerList.get(i).loadIcon(getPackageManager());
                        Log.v(TAG, playerList.size()+"");
                        Toast.makeText(MainActivity.this,playerList.get(i).loadLabel(pm)+":"+playerList.get(i).loadIcon(pm), Toast.LENGTH_SHORT).show();
                    }
                }
                break;
            default:
                Log.d(TAG, "I have no idea what the headset state is");
                Toast.makeText(MainActivity.this, "I have no idea what the headset state is", Toast.LENGTH_SHORT).show();
            }
        }
    }
}
@Override
public void onPause() {
    unregisterReceiver(myReceiver);
    super.onPause();
}

}

实际上,我想加载手机中安装的所有应用程序,并在用户插入耳机时向用户显示一个对话框我正在使用上面提到的代码,但总是在 android 中加载浏览器应用程序,即使没有加载媒体播放器我的手机是Micromax画布

如果您想打开音频或视频录制,那么这就是答案

 File filenew = new File(Environment.getExternalStorageDirectory(), "/Recording/"+filename);
               int file_size = Integer.parseInt(String.valueOf(filenew.length()/1024));
              // Toast.makeText(getApplicationContext(), ""+file_size, 10000).show();
               Intent intent = new Intent();  
              intent.setAction(android.content.Intent.ACTION_VIEW);  
              intent.setDataAndType(Uri.fromFile(filenew), "audio/*");  
              startActivity(intent);

最新更新