精华内容
下载资源
问答
  • [Intent] 调用其他应用 setComponent 資料來源:http://slashgill.blogspot.com/2010/10/intent.html 只要利用adb logcat ,再搭配使用setComponet(),就可以輕易的呼叫第三方程式(不在自己的application內)...

    [Intent] 调用其他应用 setComponent

    資料來源:http://slashgill.blogspot.com/2010/10/intent.html

    只要利用adb logcat ,再搭配使用setComponet(),就可以輕易的呼叫第三方程式(不在自己的application內)。
    詳細用法參考原文:
    http://developer.android.com/reference/android/content/Intent.html#setComponent%28android.content.ComponentName%29

    比如我自己的程式想執行Android裡面的Settings,先用adb logcat看系統是如何呼叫Settings的

    I/ActivityManager( 60): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.settings/.Settings }
    I/ActivityManager( 60): Displayed activity com.android.settings/.Settings: 1205 ms (total 1205 ms)

    只要有這個cmp就可以呼叫Settings了

    public class Main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent i = new Intent();
    ComponentName comp = new ComponentName("com.android.settings", "com.android.settings.Settings");
    i.setComponent(comp);

    startActivity(i);
    }
    }
    另外有些程式要被執行,Intent還要多加搭配Intent.setData()或者是Intent.setAction()等方式。比如:想要開啟Browser,而且是開啟tw.yahoo.com的網頁,程式碼如下:
    Intent i = new Intent();
    ComponentName comp = new ComponentName("com.android.browser", "com.android.browser.BrowserActivity");
    i.setComponent(comp);
    Uri uri = Uri.parse("http://tw.yahoo.com");
    i.setData(uri);

    startActivity(i);

    参考:

    android使用setComponent启动另外一个程序

    展开全文
  • android 程序外启动其他应用

    千次阅读 2015-09-21 15:17:45
    情况:在应用退出后,接收到推送消息时启动应用方法:在监听到消息时,添加以下代码: Intent intent = new Intent(); intent.setClass(context.getApplicationContext(), GLaunchActivity.class); intent....

    情况:

    在应用退出后,接收到推送消息时启动应用


    方法:

    在监听到消息时,添加以下代码:

    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningTaskInfo> list = am.getRunningTasks(20);
    for (ActivityManager.RunningTaskInfo info : list) {
        //判断程序是否已启动
        if (info.topActivity.getPackageName().equals("com.qiulaila.golf") && info.baseActivity.getPackageName().equals("com.qiulaila.golf")) {
            Intent intent = new Intent();
            intent.setClass(context.getApplicationContext(), MainActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.getApplicationContext().startActivity(intent);
            break;
            }
    }



    展开全文
  • 我想写一个android的app,功能是能够禁止其他应用启动,就是完全让它启动不了。只有在我的app里解除禁止后它才能启动。 求大神问一下~能不能实现这种功能,然后要用到什么技术,有没有什么参考资料
  • 允许其他应用启动你的APP

    千次阅读 2016-11-20 20:57:04
    前两课重点讲述一方面:从您的应用启动另一个应用的 Activity。 但如果您的应用可以执行对另一个应用可能有用的操作,您的应用应准备好响应来自其他应用的操作请求。...要允许其他应用启动您的 Activity,您需要在清单

    前两课重点讲述一方面:从您的应用启动另一个应用的 Activity。 但如果您的应用可以执行对另一个应用可能有用的操作,您的应用应准备好响应来自其他应用的操作请求。 例如,如果您构建一款可与用户的好友分享消息或照片的社交应用,您最关注的是支持 ACTION_SEND Intent 以便用户可以从另一应用发起“共享”操作并且启动您的应用执行该操作。

    要允许其他应用启动您的 Activity,您需要在清单文件中为对应的 <activity> 元素添加一个 <intent-filter> 元素。

    当您的应用安装在设备上时,系统会识别您的 Intent 过滤器并添加信息至所有已安装应用支持的 Intent 内部目录。当应用通过隐含 Intent 调用 startActivity() 或 startActivityForResult() 时,系统会找到可以响应该 Intent 的 Activity。

    添加 Intent 过滤器

    为了正确定义您的 Activity 可处理的 Intent,您添加的每个 Intent 过滤器在操作类型和 Activity 接受的数据方面应尽可能具体。

    如果 Activity 具有满足以下 Intent 对象条件的 Intent 过滤器,系统可能向 Activity 发送给定的 Intent:

    操作

    • 对要执行的操作命名的字符串。通常是平台定义的值之一,比如 ACTION_SEND 或 ACTION_VIEW。 使用 <action>元素在您的 Intent 过滤器中指定此值。您在此元素中指定的值必须是操作的完整字符串名称,而不是 API 常量(请参阅以下示例)。

    数据

    • 与 Intent 关联的数据描述。 用 元素在您的 Intent过滤器中指定此内容。使用此元素中的一个或多个属性,您可以只指定 MIME 类型、URI 前缀、URI 架构或这些的组合以及其他指示所接受数据类型的项。

    注:如果您无需声明关于数据的具体信息 Uri(比如,您的 Activity 处理其他类型的“额外”数据而不是 URI 时),您应只指定android:mimeType 属性声明您的 Activity 处理的数据类型,比如 text/plain 或 image/jpeg。

    类别

    • 提供另外一种表征处理 Intent 的 Activity 的方法,通常与用户手势或 Activity 启动的位置有关。
      系统支持多种不同的类别,但大多数都很少使用。 但是,所有隐含 Intent 默认使用 CATEGORY_DEFAULT 进行定义。 用<category> 元素在您的 Intent 过滤器中指定此内容。

    在您的 Intent 过滤器中,您可以通过声明嵌套在 <intent-filter> 元素中的具有相应 XML 元素的各项,来声明您的 Activity 接受的条件。

    例如,此处有一个 Activity 与在数据类型为文本或图像时处理 ACTION_SEND Intent 的 Intent 过滤器:

    <activity android:name="ShareActivity">
        <intent-filter>
            <action android:name="android.intent.action.SEND"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="text/plain"/>
            <data android:mimeType="image/*"/>
        </intent-filter>
    </activity>

    每个incoming Intent 仅指定一项操作和一个数据类型,但可以在每个 <intent-filter> 中声明 <action>、<category><data> 元素的多个实例。

    如果任何两对操作和数据的行为相斥,您应创建单独的 Intent 过滤器指定与哪种数据类型配对时哪些操作可接受。

    比如,假定您的 Activity 同时处理 ACTION_SEND 和 ACTION_SENDTO Intent 的文本和图像。在这种情况下,您必须为两个操作定义两种不同的 Intent 过滤器,因为 ACTION_SENDTO Intent 必须使用数据 Uri 指定使用 send 或 sendto URI 架构的收件人地址。例如:

    <activity android:name="ShareActivity">
        <!-- filter for sending text; accepts SENDTO action with sms URI schemes -->
        <intent-filter>
            <action android:name="android.intent.action.SENDTO"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:scheme="sms" />
            <data android:scheme="smsto" />
        </intent-filter>
        <!-- filter for sending text or images; accepts SEND action and text or image data -->
        <intent-filter>
            <action android:name="android.intent.action.SEND"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="image/*"/>
            <data android:mimeType="text/plain"/>
        </intent-filter>
    </activity>

    注:为了接收隐含 Intent,您必须在 Intent 过滤器中包含 CATEGORY_DEFAULT 类别。方法startActivity() 和startActivityForResult() 将按照已声明 CATEGORY_DEFAULT 类别的方式处理所有 Intent。如果您不在 Intent 过滤器中声明它,则没有隐含 Intent 分解为您的 Activity。

    处理您的 Activity 中的 Intent

    为了决定在您的 Activity 中执行哪种操作,您可读取用于启动 Activity 的 Intent。

    当您的 Activity 启动时,调用 getIntent() 检索启动 Activity 的 Intent。您可以在 Activity 生命周期的任何时间执行此操作,但您通常应在早期回调时(比如,onCreate() 或 onStart())执行。

    例如:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        setContentView(R.layout.main);
    
        // Get the intent that started this activity
        Intent intent = getIntent();
        Uri data = intent.getData();
    
        // Figure out what to do based on the intent type
        if (intent.getType().indexOf("image/") != -1) {
            // Handle intents with image data ...
        } else if (intent.getType().equals("text/plain")) {
            // Handle intents with text ...
        }
    }

    返回结果

    如果您想要向调用您的 Activity 的 Activity 返回结果,只需调用 setResult() 指定结果代码和结果 Intent。当您的操作完成且用户应返回原始 Activity 时,调用 finish() 关闭(和销毁)您的 Activity。 例如:

    // Create intent to deliver some kind of result data
    Intent result = new Intent("com.example.RESULT_ACTION", Uri.parse("content://result_uri"));
    setResult(Activity.RESULT_OK, result);
    finish();

    您必须始终为结果指定结果代码。通常,它是 RESULT_OK 或 RESULT_CANCELED。您之后可以根据需要为 Intent 提供额外的数据。

    注:默认情况下,结果设置为 RESULT_CANCELED。因此,如果用户在完成操作动作或设置结果之前按了返回按钮,原始 Activity 会收到“已取消”的结果。

    如果您只需返回指示若干结果选项之一的整数,您可以将结果代码设置为大于 0 的任何值。如果您使用结果代码传递整数,且无需包括 Intent,则可调用 setResult() 且仅传递结果代码。例如:

    setResult(RESULT_COLOR_RED);
    finish();

    在这种情况下,只有几个可能的结果,因此结果代码是一个本地定义的整数(大于 0)。 当您向自己应用中的 Activity 返回结果时,这将非常有效,因为接收结果的 Activity 可引用公共常数来确定结果代码的值。

    注:无需检查您的 Activity 是被使用 startActivity() 还是 startActivityForResult() 启动的。如果启动您 Activity 的 Intent 可能需要结果,只需调用 setResult()。如果原始 Activity 已调用 startActivityForResult(),则系统将向其传递您提供给 setResult() 的结果;否则,会忽略结果。

    展开全文
  • 当我们的应用需要依赖另外一个应用的时候(这个应用很可能是同一个公司旗下的),就会用到隐式启动另一个App,假如用户并没有装这个App呢,我们要帮助他装,所以,帮助用户跳转到应用市场下载App这个需求就出来了,...

    当我们的应用需要依赖另外一个应用的时候(这个应用很可能是同一个公司旗下的),就会用到隐式启动另一个App,假如用户并没有装这个App呢,我们要帮助他装,所以,帮助用户跳转到应用市场下载App这个需求就出来了,下面我写一下我的实现方式。

    其实也很简单,就是通过隐式启动另一个App,在启动之前先检查这个App有没有安装,如果安装了就启动,没安装就跳转到应用市场。

    1、先建两个model,一个是启动的App,一个是被启动的App。启动的App里就放一个Button,被启动的App里加一行text。

    2、检测被启动App有没有安装

    /**
         * 检测某个应用是否安装
         *
         * @param context
         * @param packageName
         * @return
         */
        public boolean isAppInstalled(Context context, String packageName) {
            try {
                context.getPackageManager().getPackageInfo(packageName, 0);
                return true;
            } catch (PackageManager.NameNotFoundException e) {
                return false;
            }
        }


    3、安装的话隐式启动这个App

    startActivity(getPackageManager().getLaunchIntentForPackage(APP_PACKAGE_NAME));


    4、如果检测到这个应用没有安装,则跳转到应用市场

    /**
         * 去市场下载页面
         */
        public void goToMarket(Context context, String packageName) {
            Uri uri = Uri.parse("market://details?id=" + packageName);
            Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
            try {
                context.startActivity(goToMarket);
            } catch (ActivityNotFoundException e) {
            }
        }


    这样需求就完成了。

    完整代码

    package com.example.v_lzhiy.loadacafrommarkt;
    
    import android.content.ActivityNotFoundException;
    import android.content.Context;
    import android.content.Intent;
    import android.content.pm.PackageManager;
    import android.net.Uri;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    
    public class MainActivity extends AppCompatActivity {
    
        public static final String APP_PACKAGE_NAME = "要跳转应用的包名";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        public void startACA(View v){
            // 判断是否安装过App,否则去市场下载
            if (isAppInstalled(this, APP_PACKAGE_NAME)) {
                startActivity(getPackageManager().getLaunchIntentForPackage(APP_PACKAGE_NAME));
            } else {
                goToMarket(this, APP_PACKAGE_NAME);
            }
        }
    
        /**
         * 检测某个应用是否安装
         *
         * @param context
         * @param packageName
         * @return
         */
        public boolean isAppInstalled(Context context, String packageName) {
            try {
                context.getPackageManager().getPackageInfo(packageName, 0);
                return true;
            } catch (PackageManager.NameNotFoundException e) {
                return false;
            }
        }
    
        /**
         * 去市场下载页面
         */
        public void goToMarket(Context context, String packageName) {
            Uri uri = Uri.parse("market://details?id=" + packageName);
            Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
            try {
                context.startActivity(goToMarket);
            } catch (ActivityNotFoundException e) {
            }
        }
    }
    



    展开全文
  • 要实现和测试这个功能 首先要创建 3个Android ...并在此应用中点击相应的应用图标时 会启动对应的应用程序.    首先建立第一个 作为隐藏的应用 关键的实现点都在AndroidManifest.xml中 我这里配置应用包名为 pa
  • //应用 A 跳转到应用B指定界面 //应用A调转的intent代码  Intent intent = new Intent();  ComponentName comp = new ComponentName("com.xxx.xxxx", "com.xxx.xxx.BActivity");  intent....
  • tomcat控制应用启动顺序

    千次阅读 2019-07-12 11:46:04
    tomcat下有两个应用 假设aa.war应用 和 bb.war应用 tomcat再无任何配置的情况下 默认会按文件名字典顺序启动,也就是 aa->bb 的启动顺序 如果aa.war应用依赖于bb.war应用,想按照 bb->aa 的启动顺序怎么办? ...
  • 一、打开第三方应用 方法一 Intent intent=new Intent(); //包名 包名+类名(全路径) intent.setClassName("com.linxcool", "com.linxcool.PlaneActivity"); startActivity(intent);
  • 如图所示 ![图片说明](https://img-ask.csdn.net/upload/201801/29/1517193805_901813.png) 这个自启动怎么用代码设置成默认开启啊
  • Chrome查看应用程序(应用启动器)

    千次阅读 2017-03-23 23:11:51
    在Chrome中输入下面URI即可查看,奇怪的是应用启动器不能自动下载了,可以添加书签方便查看。chrome://apps
  • flask应用启动

    万次阅读 2017-08-24 17:00:34
    从flask源码中看flask应用启动的流程。
  • 类QDesktopServices提供的方法访问常用的桌面服务,如浏览器、播放器、电子邮件客户端、我们使用QDesktopServices::openUrl(url),... 如果想要启动其他应用程序使用QProcess,当发生错误时,可以根据指定的错误描述所
  • 利用startActivity启动其他应用

    千次阅读 2017-09-08 16:34:47
    但是不同的Application下的应用,访问Activity的时候就存在权限问题。如果设置同一个ShareUserId可以避免这种情况。  下面补充一点,如何共享一个程序的数据, 如果你需要做一个application,将某些服务...
  • 错误: 应用程序无法启动,因为应用程序的并行配置不正确。请参阅应用程序事件日志,或使用命令行sxstrace.exe工具”问题的处理方法。方法一:1. 开始 - 运行(输入services.msc)- 确定或回车,打开:服务(本地...
  • android 启动其他应用两种方法

    千次阅读 2018-04-09 14:17:06
    方法一:前提是知道待打开应用的包名与类名private void openOtherApp1() { ComponentName apk2Component1 = new ComponentName("com.xxx","com.xxx.activity.xxxActivity"); Intent ...
  • 通常创建一个名为rc.local的脚本文件, 将所有要在系统引导过程中启动的用户应用写入该脚本文件中. 该脚本文件可以在/etc/inittab文件中被调用, 通常是在所有系统应用和服务启动后, 在用户登录被允许之前被调用....
  • android 怎么启动其他应用的服务

    千次阅读 2019-05-06 18:31:19
    Intent intent = new Intent(); intent.setComponent(new ComponentName("com.mile.projectorctrl", ... startService(intent); 注:其他服务的配置里需要添加export <servi...
  • spring boot应用启动关闭方式

    万次阅读 2017-12-01 10:14:31
    1、在IDE中启动spring boot应用项目的启动 类Appplication.java的main方法; 比如:@SpringBootApplicationpublic class EurekaClientApplication { public static void main(String[] args) { new ...
  • Android跨应用启动

    千次阅读 2017-04-22 23:17:10
    Android跨应用启动
  • Android 应用启动速度优化

    万次阅读 2014-09-28 15:38:08
    其实白屏或者黑屏还是一些其他的东西,都是因为Android 主题的问题,只要自己自定义一个启动主题,问题完美解决。解决如下:style文件中添加: @drawable/splash true 只要设置一个和启动activity一样的背景即可...
  • 本周刚好研究了一下dubbo的启动脚本,所以在官网的启动脚本和公司内部的启动脚本做了一个整理,弄了一份比较通过的Dubbo应用启动和停止脚本。  下面的脚本只应用于配置分离的应用,什么叫做配置分离呢?就是使用...
  • 无法激活windows应用商店应用程序,应用进程已启动,但激活请求失败,错误为“应用启动” 使用VS2017配置环境时出错,不是C#版本。 原因 部署和调试打不开是因为依赖库不全导致。将所需要的库配置完整就解决了。...
  • 但是如果要让你的脚本能够在任何界面下不通过点击图标而启动应用,除了包名之外还需要主Activity的信息,以下的AppInfo中,通过配置Intent,过滤出了主Activity信息。 最后,可以通过如下方式启动被测应用(我的...
  • 安桌通过包名启动应用关闭应用

    千次阅读 2017-06-28 11:30:41
    一、通过包名启动启动应用 (1)包名 private void startActivity(String PackageName) { Intent mainIntent = getApplicationContext().getPackageManager() .getLaunchIntentForPackage(PackageName); ...
  • 在一个移动设备中安装了多个应用程序,其中自己开发的应用需要实现开机自启动这么个功能; 为了实现自己应用能够实现自动启动,最初的思路是监控设备的开机完成这类的广播信号;   思路一(开机自启动): 注册...
  • shell 脚本- 启动关闭应用进程

    千次阅读 2020-03-20 12:43:54
    开篇 本文讲述的是通过 shell 脚本管理服务器 上的应用程序,即启动或关闭应用程序。现应用在公司的一个 flask 项目上,可以保证功能可用,但不能...启动应用程序 ava -jar demo.jar(打包好的 Springboot 项目) ...
  • android 跨应用启动activity

    千次阅读 2018-05-11 09:05:08
    Android跨应用启动前言:相信大家,很多时候都是在自己的应用中,启动自己写的Activity,Service、BroadcastReceiver、contentProvider 。换句话说,这些都只是 * 单个应用中 组件间 * 的启动。而我们下面要谈论的是...
  • 应用在第一次启动正常,按back键退出后再次启动出现白屏,最后卡死,如果清掉进程后再次启动正常,这是什么原因
  • 应用程序无法正常启动0xc000007b,请单击确定关闭应用程序 问题再现: 之前将电脑的系统装成了Win7 64位旗舰版的官方原版镜像,镜像名为:cn_windows_7_ultimate_x64_dvd_x15-66043.iso、 当装上Qt creater后,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,160,199
精华内容 864,079
关键字:

如何关闭应用启动其他应用