精华内容
下载资源
问答
  • 这是一个获取手机程序应用并且通过点击事件触发通过应用程序的包名和主activity跳转其他应用的方式。 代码如下:  @Override  public void onItemClick(AdapterView<?> parent, View view, int ...
    

    这是一个获取手机程序应用并且通过点击事件触发通过应用程序的包名和主activity跳转其他应用的方式。

    代码如下:


     @Override
     public void onItemClick(AdapterView<?> parent, View view, int position,
       long id) {
      // TODO Auto-generated method stub
      bean = new PageToolsBean();
      bean = list.get(position);
      List<PackageInfo> appList = getAllApps(appContext);

      for (int i = 0; i < appList.size(); i++) {
       PackageInfo pinfo = appList.get(i);
       // set Package Name
       back_name = pinfo.applicationInfo.packageName;
       System.out.println("是不是本应用的包名" + back_name);
       if (bean.getApp_package().equals(back_name)) {
        isname = bean.getApp_package();
        Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
        resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        resolveIntent.setPackage(back_name);
        List<ResolveInfo> apps = pManager.queryIntentActivities(resolveIntent, 0);
        ResolveInfo ri = apps.iterator().next();
        if (ri != null ) {
        activity_name = ri.activityInfo.name;
        System.out.println("是不是本应用的类"+activity_name);
       }
        loaData();
        return;
      }
      }
      loaData();
     }

     /*
      * 获取所有的包名
      */
     public static List<PackageInfo> getAllApps(AppContext context) {
      List<PackageInfo> apps = new ArrayList<PackageInfo>();
       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) {
        // customs applications
        apps.add(pak);

       }
      }
      return apps;
     }

     private void loaData() {// 判断是否是下载还是打开app
      if (isname == null) {
       Toast.makeText(appContext, "您需要下载该软件", Toast.LENGTH_LONG).show();
       String info = bean.getTools_content();
       showExitDialog(info);
      } else {
       
       Intent intent = new Intent(Intent.ACTION_MAIN);
       intent.addCategory(Intent.CATEGORY_LAUNCHER);

      
       ComponentName componentName = new ComponentName(back_name,
         activity_name);
       
       intent.setComponent(componentName);
       startActivity(intent);

      }

     }

     private void showExitDialog(String info) {
      AlertDialog.Builder builder = new Builder(
        PageToolsActivity.this.getParent());
      builder.setTitle("您是否下载该软件");
      builder.setMessage(info);
      // 更新
      builder.setPositiveButton("立即下载",
        new DialogInterface.OnClickListener() {
         @Override
         public void onClick(DialogInterface dialog, int which) {
          dialog.dismiss();
          // 显示下载对话框
          showDownloadDialog();
         }
        });
      // 稍后更新
      builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
       @Override
       public void onClick(DialogInterface dialog, int which) {
        Intent intent = new Intent();
        intent.setAction("ExitApp");
        PageToolsActivity.this.getParent().sendBroadcast(intent);
        // System.exit(0);
       }
      });
      builder.setCancelable(false);
      Dialog noticeDialog = builder.create();
      noticeDialog.show();

     }

     /**
      * 显示软件下载对话框
      */
     private void showDownloadDialog() {
      // 构造软件下载对话框
      AlertDialog.Builder builder = new Builder(
        PageToolsActivity.this.getParent());
      builder.setTitle("正在更新,请稍后...");

      bar = (ProgressBar) View.inflate(PageToolsActivity.this.getParent(),
        R.layout.item_progressbar, null);
      builder.setView(bar);

      // 取消更新
      builder.setNegativeButton("取消更新",
        new DialogInterface.OnClickListener() {
         @Override
         public void onClick(DialogInterface dialog, int which) {
          boolean b = FileTool.delAllFile(path);
          System.out.println("b=" + b);
          dialog.dismiss();

          cancel(true);// 取消
          // author shan
          // 删掉没有下载完的apk

         }
        });
      dialog = builder.create();
      dialog.show();

      new Thread(new DownloadApk()).start();// 开始下载
     }

     protected void cancel(boolean b) {
      // TODO Auto-generated method stub

     }

     Handler handler = new Handler() {

      public void handleMessage(android.os.Message msg) {

       switch (msg.what) {

       case DOWNLOAD_STATE_ING:
        // System.out.println("正在下载。。。");
        bar.setProgress(progress);
        break;
       case DOWNLOAD_STATE_FINISH:
        System.out.println("download state finish");
        if (!isCancelled()) {
         dialog.dismiss();

         ActivityUtil.installApk(PageToolsActivity.this.getParent(),
           path + bean.getApp_package());

        }
        break;
       case DOWNLOAD_STATE_FAIL:
        dialog.dismiss();

        Toast.makeText(PageToolsActivity.this.getParent(), "下载文件失败!",
          Toast.LENGTH_LONG).show();
        break;
       }

      };

     };

     DownloadFileListener listener = new DownloadFileListener() {

      @Override
      public boolean executeing(long length, long count) {

       progress = (int) (((float) count / length) * 100);
       handler.sendEmptyMessage(DOWNLOAD_STATE_ING);

       return isCancelled();
      }

      @Override
      public boolean afterExecute() {
       // TODO Auto-generated method stub
       System.out.println("sup" + super.afterExecute());
       return super.afterExecute();
      }
     };

     class DownloadApk implements Runnable {

      @Override
      public void run() {

       if (HttpFileTool.downFile(bean.getDownload_path(), path,
         bean.getApp_package(), listener, FileExistSolveType.SKIP)) {

        handler.sendEmptyMessage(DOWNLOAD_STATE_FINISH);

       } else {
        FileTool.delAllFile(path);
        handler.sendEmptyMessage(DOWNLOAD_STATE_FAIL);

       }

      }

     }

    展开全文
  • 应用装在手机上 情况一:使用Android 调试桥 (adb) 使用数据线连接电脑,并打开 USB 调试,...在手机上将你需要获取包名和Activity名的应用程序启动,这里我运行QQ 电脑上doc窗口输入: adb shell dumpsys window...

    应用装在手机上

    情况一:使用Android 调试桥 (adb)

    使用数据线连接电脑,并打开 USB 调试,找到你的Android-SDK所在
    如我的:“D:\Android\Sdk\platform-tools”
    在地址栏输入CMD按回车启动命令行
    在这里插入图片描述
    在手机上将你需要获取包名和Activity名的应用程序启动,这里我运行QQ
    电脑上doc窗口输入:

    adb shell dumpsys window | findstr mCurrentFocus
    

    即可查看到当前运行的包名和当前所在的Activity
    在这里插入图片描述

    情况二:使用Android Studio通过代码获取包名类名

    获取应用信息列表:

        private List<ResolveInfo> getResolveInfos(){
            List<ResolveInfo> appList = null;
    
            Intent intent = new Intent(Intent.ACTION_MAIN, null);
            intent.addCategory(Intent.CATEGORY_LAUNCHER);
            PackageManager pm = getPackageManager();
            appList = pm.queryIntentActivities(intent, 0);
            Collections.sort(appList, new ResolveInfo.DisplayNameComparator(pm));
    
            return appList;
        }
    

    遍历应用列表,打印应用名称,包名,启动的类名:

        private void plintPkgAndCls(List<ResolveInfo> resolveInfos){
            PackageManager packageManager = getPackageManager();
    
            Log.e("pkg", "####################start######################");
            for (int i = 0; i < resolveInfos.size(); i++) {
                String pkg = resolveInfos.get(i).activityInfo.packageName;
                String cls = resolveInfos.get(i).activityInfo.name;
                String parentActivityName = resolveInfos.get(i).activityInfo.targetActivity;
                String title = null;
    
                try {
                    ApplicationInfo applicationInfo = packageManager.getPackageInfo(pkg, i).applicationInfo;
                    title = applicationInfo.loadLabel(packageManager).toString();
                }catch (Exception e){
    
                }
    
                Log.i("pkg", title + ":"+pkg+"/"+cls+"/"+parentActivityName);
            }
            Log.e("pkg", "#####################end#######################");
        }
    

    在onCreate中调用函数:

    	 plintPkgAndCls(getResolveInfos()); //调用函数打印包名类名
    

    有apk文件包

    使用aapt // aapt也是Android-sdk自带的一个工具

    准备工作如图,aapt 所在位置及将 .apk 文件复制到同级目录下
    在这里插入图片描述

    切换到命令行输入命令 (查看 AndroidManifest.xml文件) :

    aapt dump xmltree atest.apk AndroidManifest.xml
    

    在这里插入图片描述

    当然也可以使用apktool反编译app,不过我没有去研究,这里就不说了

    展开全文
  • 程序开发人员,不拘泥于语言与技术,目前主要从事PHP和前端开发,使用Laravel和VueJs,App端使用Apicloud混合式开发。合适和够用是最完美的追求。 个人网站:http://www.linganmin.cn 最近刚写了一个手机在线播放的...
        

    关于作者

    程序开发人员,不拘泥于语言与技术,目前主要从事PHP和前端开发,使用Laravel和VueJs,App端使用Apicloud混合式开发。合适和够用是最完美的追求。

    个人网站:http://www.linganmin.cn

    最近刚写了一个手机在线播放的H5电影站:http://www.ifilm.ltd

    使用html的meta

    缺点:并不是立即跳转,会在当前页面停留

    
    <meta http-equiv="Refresh" content="3;url=[要跳转的地址]"/>
    
    <!-- 跳转到百度 -->
    <meta http-equiv="Refresh" content="3;url=[要跳转的地址]"/>

    使用php函数header

    是立即跳转,执行header时候,并不是立即结束,而是会把页面执行完毕;在header前面不能有任何输出

    header('Location:other.[其他地址]');
    
    // 跳转到百度
    header('Location:http://baidu.com');

    使用PHP函数header并指定跳转时间

    // 进入页面后3秒后跳转
    header('Refresh:3,Url=http://baidu.com');
    echo '3s 后跳转';
    
    die;

    使用JavaScript进行跳转

    location.href = "http://baidu.com"

    安小下同学

    展开全文
  • 今天宣布开放从小程序跳转到手机应用的功能,具体来说,这项功能属于此前开放的“app 链接”的延伸功能,用户通过某款 app 打开并直接跳转到程序页面后,将允许用户直接在小程序页面打开来源 app。还强调了这项...
  • 先简单说下这个问题是怎么来的吧,程序打开进入主页,这个时候就可以通过主页来跳转到其他页面,有的是Activity或者是Fragment构建的页面,这个时候我们就可以通过Android Studio提供的Android Monitor观察Monitors...
  • 2、只手机版跳转:即只有手机版页面可跳转到电脑版,例如电脑访问手机版时会自动跳转到电脑版对应的页面,而使用手机访问电脑版时不会进行跳转。 3、只电脑版跳转:即只有电脑版页面可跳转到手机版,例如手机访问...
  • 当我们在手机上使用360安全卫士时,手机屏幕上时刻都会出现一个小浮动窗口,点击该浮动窗口可跳转到安全卫士的操作界面,而且该浮动窗口不受其他activity的覆盖影响仍然可见(多米音乐也有相关的和主界面交互的悬浮小...
  • 原因说明: 1、由于小程序获取手机号是通过小城的...H5页面跳转程序页面,获取到手机号后通过url传参方式将手机号传入h5页面 代码实现 小程序原声获取手机号: 1、.wxml文件 <buttonopen-type="g...
  • 上开始显示,但是我们可以通过一些其他的途径获取到手机是否安装过某些应用。 ​ 正文: 一、如何判断是否安装App 用 UIApplication 的 canOpenUrl 方法,当然前提是要检测的应用程序注册
  • 上开始显示,但是我们可以通过一些其他的途径获取到手机是否安装过某些应用。 ​ 正文: 一、如何判断是否安装App 用 UIApplication 的 canOpenUrl 方法,当然前提是要检测的应用程序注册
  • 本文详细讲解一下小程序、公众号文章、H5 页面,以及其他 APP 之间的跳转路径都是怎样的,一起来看看~   移动时代,我们手机里的东西越来越多,占用的时间也越来越多。有时候要用 APP,有时候要在微信里跳来跳去,...
  • 1.微信小程序没办法直接跳转打开app、网址、手机浏览器,但是可以直接打开其他的小程序跳转到指定的小程序页面 2.微信公众号可以直接打开app或app指定页面,可以直接打开手机浏览器并跳转指定网址,可以打开小程序...
  • 程序踩的坑

    2020-05-25 18:57:54
    暂时没有找小程序监听触发物理返回键后直接关闭小程序的方法,只能在H5中监听微信浏览器中触发物理返回键进行处理,跳转到程序首页或者其他页面,从而避免联登信息失效。 效果图 小程序中登录信息拼接(uni-app)...
  • 5、优化轮播图跳转跳转其他程序问题,首页导航没问题 6、优化新上架商品选择商品推荐图片丢失问题 7、供应商关联用户 8、优化拼团商品受限制,满多少钱可下单,不对拼团商品限制 9、拼团商品出现下单购买金额为0的...
  • 今天看到一篇Android 8.0 关于安装应用程序相关的文章,然后转载过来,以后遇到了方便查看。 ... 下面看是正文: ...但却有用户反映,华为P10和华为Mate 9升级时,怎么也无法跳转到安装页面。起初我...
  • 程序海报分享之踩坑日记

    千次阅读 2018-12-27 17:04:17
    也就是可以生成商品图片和跳转商品详情页的小程序码(也叫菊花码),然后用户点击保存图片后,添加到手机相册,用户可以直接把已保存的图片发出来,其他人可以通过长按小程序码直接跳转到商品详情页。看起来比较普通...
  • 在自己开发的应用程序里,有个跳转到其他应用的按钮,比如分享到“新浪微博”,当点击这个按钮时,先判断手机中是否有安装“新浪微博”这个程序,有则启动“新浪微博”客户端,否则从指定的URL地址进行下载。...
  • 有了界面,就有了图像,有了使用用户的程序就可以识别用户的操作,那么一个简单的程序就成功了,手机能展示各种图像,以及接受用户的操作,感觉就是一个完整...程序进入后台,你或许点击了home键,或许跳转到其他程序
  • 14支持自定义底部菜单,支持跳小程序内部页面、跳转其他程序跳转链接、一键拨号 15支持模板消息通知,并且用户可以在个人中心自定义接收哪些模板消息 16支持交易币充值、交易币兑换余额、余额提现等操作 17支持...
  • 自动控量:程序按网站进出所设比例自动控制进出流量(当用户重复点击某个站时,程序自动跳转到其他今日未访问且比例未达到标准的网站) 11.网站屏蔽:开启屏蔽后非手机用户禁止访问 12.HTML彩色版 13.识别用户...
  • 特别是界面,我只是在iPhone 6上面做的实验,所以换到其他手机上时,界面就会变型了。 1. 基本思路 进入小程序时展示index页,可以让用户输入服务端url(模拟上一篇中在浏览器获取get请求) 然后跳转到实际的小车...
  • Android反汇编器 分析手机上的恶意应用 Android Disassembler是一款能够分析多种类型文件的应用程序,例如APK文件,dex文件,共享库(aka .so文件)... 按符号名称或十六进制地址跳转到地址。 语法着色。 支持PE
  • 结对成员:姜广昱,李明学号:2015035107096学号:2015035107102结对成员合照 ...其他附加内容:点击重新答题会跳转到答题界面,题目重新生成。 转载于:https://www.cnblogs.com/vcando/p/7727600.html...
  • 学号:2015035107096姓名:姜广昱 学号:2015035107102姓名:李明 结对成员合照: ...其他附加内容:点击重新答题会跳转到答题界面,题目重新生成。 转载于:https://www.cnblogs.com/cxyliming/p/7742373.html...
  • 今天在把Uniapp项目发布成小程序时,发现有些页面在微信开发者工具模拟器中每个页面显示是正常的,可以登录,可是预览在手机时除了主页其他大部分都是空白页,可是用真机调试时在手机上又是正常显示,一时间没摸...
  • 有的时候需要在某个程序里面由特定的条件跳转到设置或者其他的应用界面。我们一般采用的是根据某个特定的ACTIONT跳转到设置中去的。 首先是判断我们的手机中是否存在我们要的这个actyion. private ...
  • 要打包ipa在越狱版手机上测试自己的程序,在网上基本有两种方式:1.使用Xcode打包ipa;2.使用iTunes打包。...选择“同步推”,跳转到同步推中,找到对应的应用点击安装即可。 使用iTunes打包ipa的过程: 1.选...
  • 手机版自动跳转 赠送网站教修改教程。 加两个,手机版微信视频程序。其中一个程序是人家店卖五十元的那种。 优化版第5期 主要修改的地方有 新增,微信扫描支付 ,支付宝扫描支付。手机扫一扫就能付款。 导航栏...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 142
精华内容 56
关键字:

手机跳转到其他程序