android 选择图库 直接跳入图库界面 无选择界面

android 选择图库 直接跳入图库界面 无选择界面

由于客户的奇芭需求,对此进行
研究:
说一下思路

  1. 可以使用
 Intent  i = new    Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        i.setPackage(xxxx);// xxxx是图库的包名,系统默认的一般是com.android.xx 
        startActivity(i);

系统默认的会有一个问题
现在Adnroid系统都是定制的所以直接使用原生系统图库的包名的话,会直接崩掉的,因为定制的系统会修改系统图库的包名

  1. 解决办法就是 首先获取系统的应用,然后获取根据名字来获取图库的包名
 /**
         * 查询手机内系统应用
         * @param context
         * @return
         */
        public static List<PackageInfo> getAllApps(Context context) {
            List<PackageInfo> apps = new ArrayList<PackageInfo>();
            PackageManager pManager = context.getPackageManager();
            //获取手机内所有应用
            List<PackageInfo> paklist = pManager.getInstalledPackages(0);
            for (int i = 0; i < paklist.size(); i++) {
                PackageInfo pak = (PackageInfo) paklist.get(i);
                //判断系统预装的应用程序
                if (!((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM) <= 0)) {
                    apps.add(pak);
                }
            }
            return apps;
然后根据名字获取包名
PackageManager pManager =TestTuKu.this.getPackageManager(); 
    List<PackageInfo> appList  = getAllApps(TestTuKu.this);
              for(int i=0;i<appList.size();i++) {
                PackageInfo pinfo = appList.get(i);
                //set Application Name  if(("库").equals(pManager.getApplicationLabel(pinfo.a           
    pplicationInfo).toString())){
                    packagename  =  pinfo.packageName;
                }

最后在调用

 Intent  i = new   
    Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            i.setPackage(packagename     );
            startActivity(i);

ok!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值