精华内容
下载资源
问答
  • Android启动的四种方式分别为standard,singleTop,singleTask,singleInstence。standard是最常见的activity启动方式,也是默认的启动的方式。当启动一个activity的时候他将进入返回栈的栈顶。系统不会管栈内是否有...

    Android启动的四种方式分别为standard,singleTop,singleTask,singleInstence。

    standard是最常见的activity启动方式,也是默认的启动的方式。当启动一个activity的时候他将进入返回栈的栈顶。系统不会管栈内是否有相同的activity,方式像后入先出。

    singleTop方式是在活动启动的时候,系统先判定栈顶是否有相同的活动,如果没有则新建活动,否则将不新建活动。而是直接使用他。

    singleTask方式在活动启动的时候,系统先判定栈中是否有该活动的实例,如果没有这新建实例,如果有则将已有活动上面的栈都出栈。

    singleInstance方式在启动的时候会新建一个栈,当别的程序访问这个活动启动这个活动的时候得到的也是这个实例,所有应用访问的都是同一个实例。

    在实验别的应用B访问具有singleInstance启动模式的活动A的时候需要注意要在A应用的AndroidManifest.xml中加入

    android:name="com.example.testandroid.BActivity"

    android:exported="true" >

    android:exported="true"这是申明活动可以被其他应用打开

    以上所述是小编给大家介绍的Android 启动activity的4种方式及打开其他应用的activity的坑 的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对找一找教程网网站的支持!

    展开全文
  • 这些一系列的应用,以wps为例(稳定、支持的文件格式相对较多):支持文件类型:.doc .docx .xls .xlsx .pdf .ppt ..pptx .wps当然了,如果想要打开mac上的.key或者其他类型文件,wps是不支持这样的格式的。...

    目前android大部分手机都有安装wps,有的甚至还会安装其他阅读类的app,比如:华为手机自带华为阅读等等。

    这些一系列的应用,以wps为例(稳定、支持的文件格式相对较多):

    支持文件类型:.doc  .docx  .xls  .xlsx  .pdf  .ppt  ..pptx  .wps

    当然了,如果想要打开mac上的.key或者其他类型文件,wps是不支持这样的格式的。

    直接上代码:

    /**

    * 打开文件

    *

    *@paramfile

    */

    private voidopenOrShareFile(File file,String action) {

    try{

    if(file ==null|| !file.exists()) {

    showTopSnackBar("文件不存在");

    return;

    }

    if(TextUtils.equals(FileUtils.getFileType(file.getName()),".key")) {

    showTopSnackBar("此文件类型不支持打开");

    return;

    }

    log("-------------->file path:"+ file.getAbsolutePath());

    Intent intent =newIntent();

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    //设置intent的Action属性

    intent.setAction(action);

    //获取文件file的MIME类型

    String type = FileUtils.getMIMEType(file);

    //设置intent的data和Type属性。

    Uri uri =null;

    if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.N) {

    uri = FileProvider.getUriForFile(this,BuildConfig.APPLICATION_ID+".provider",file);

    }else{

    uri = Uri.fromFile(file);

    }

    log("-------------->open uri:"+ uri);

    //添加这一句表示对目标应用临时授权该Uri所代表的文件

    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION

    | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

    if(action.equals(Intent.ACTION_VIEW)) {

    intent.setDataAndType(uri,type);

    startActivity(intent);//这里最好try一下,有可能会报错。 //比如说你的MIME类型是打开邮箱,但是你手机里面没装邮箱客户端,就会报错。

    }

    }catch(Exception e) {

    e.printStackTrace();

    bugSync("外部打开文件失败",e);

    }

    }

    /**

    * 分享文件

    *

    *@paramfile

    */

    private voidshareFile(File file) {

    try{

    if(file ==null|| !file.exists()) {

    showTopSnackBar("文件不存在");

    return;

    }

    log("-------------->file path:"+ file.getAbsolutePath());

    Intent intent =newIntent(Intent.ACTION_SEND);

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    //设置intent的data和Type属性。

    Uri uri = Uri.fromFile(file);

    log("-------------->share uri:"+ uri);

    //添加这一句表示对目标应用临时授权该Uri所代表的文件

    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION

    | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

    intent.putExtra(Intent.EXTRA_STREAM,uri);

    intent.setType("*/*");

    startActivity(Intent.createChooser(intent,"Alpha Share"));

    }catch(Exception e) {

    e.printStackTrace();

    bugSync("外部分享文件失败",e);

    }

    }

    特别注意粗体+斜体部分,兼容各种手机版本。

    展开全文
  • 我用webview创建了一个简单的应用程序,可以处理/打开任何URL.但问题是,当我点击任何超链接时,我的应用程序将不会以列表显示.如上图所示,我单击一个超链接,它弹出一个打开的列表,但我的应用程序没有显示在这里.所以,...

    我用webview创建了一个简单的应用程序,可以处理/打开任何URL.但问题是,当我点击任何超链接时,我的应用程序将不会以列表显示.

    d01451e5893b236bdbbe1bc8b230bca2.png

    如上图所示,我单击一个超链接,它弹出一个打开的列表,但我的应用程序没有显示在这里.所以,我想显示我的应用程序也显示在此打开列表中.

    清单代码:

    android:allowBackup="false"

    android:icon="@mipmap/ic_launcher"

    android:label="@string/app_name"

    android:supportsRtl="true"

    android:theme="@style/AppTheme">

    android:name="biz.coolpage.aashish.app.MainActivity"

    android:configChanges="keyboardHidden|orientation|screenSize"

    android:label="@string/app_name"

    android:theme="@style/AppTheme.Translucent.Light"

    android:hardwareAccelerated="true"

    android:launchMode="singleInstance"

    android:alwaysRetainTaskState="true">

    android:scheme="http" />

    解决方法:

    使用此intent过滤器添加另一个活动

    android:label="MyBrowser" android:name="BrowserActivity">

    标签:android,android-manifest,open-with

    来源: https://codeday.me/bug/20190607/1194778.html

    展开全文
  • public class OpenFiles {//android获取一个用于打开HTML文件的intentpublic static Intent getHtmlFileIntent(File file){Uri uri = Uri.parse(file.toString()).buildUpon().encodedAuthority(...

    public class OpenFiles {

    //android获取一个用于打开HTML文件的intent

    public static Intent getHtmlFileIntent(File file)

    {

    Uri uri = Uri.parse(file.toString()).buildUpon().encodedAuthority("com.android.htmlfileprovider").scheme("content").encodedPath(file.toString()).build();

    Intent intent = new Intent("android.intent.action.VIEW");

    intent.setDataAndType(uri, "text/html");

    return intent;

    }

    //android获取一个用于打开图片文件的intent

    public static Intent getImageFileIntent(File file)

    {

    Intent intent = new Intent("android.intent.action.VIEW");

    intent.addCategory("android.intent.category.DEFAULT");

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    Uri uri = Uri.fromFile(file);

    intent.setDataAndType(uri, "image/*");

    return intent;

    }

    //android获取一个用于打开PDF文件的intent

    public static Intent getPdfFileIntent(File file)

    {

    Intent intent = new Intent("android.intent.action.VIEW");

    intent.addCategory("android.intent.category.DEFAULT");

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    Uri uri = Uri.fromFile(file);

    intent.setDataAndType(uri, "application/pdf");

    return intent;

    }

    //android获取一个用于打开文本文件的intent

    public static Intent getTextFileIntent(File file)

    {

    Intent intent = new Intent("android.intent.action.VIEW");

    intent.addCategory("android.intent.category.DEFAULT");

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    Uri uri = Uri.fromFile(file);

    intent.setDataAndType(uri, "text/plain");

    return intent;

    }

    //android获取一个用于打开音频文件的intent

    public static Intent getAudioFileIntent(File file)

    {

    Intent intent = new Intent("android.intent.action.VIEW");

    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    intent.putExtra("oneshot", 0);

    intent.putExtra("configchange", 0);

    Uri uri = Uri.fromFile(file);

    intent.setDataAndType(uri, "audio/*");

    return intent;

    }

    //android获取一个用于打开视频文件的intent

    public static Intent getVideoFileIntent(File file)

    {

    Intent intent = new Intent("android.intent.action.VIEW");

    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    intent.putExtra("oneshot", 0);

    intent.putExtra("configchange", 0);

    Uri uri = Uri.fromFile(file);

    intent.setDataAndType(uri, "video/*");

    return intent;

    }

    //android获取一个用于打开CHM文件的intent

    public static Intent getChmFileIntent(File file)

    {

    Intent intent = new Intent("android.intent.action.VIEW");

    intent.addCategory("android.intent.category.DEFAULT");

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    Uri uri = Uri.fromFile(file);

    intent.setDataAndType(uri, "application/x-chm");

    return intent;

    }

    //android获取一个用于打开Word文件的intent

    public static Intent getWordFileIntent(File file)

    {

    Intent intent = new Intent("android.intent.action.VIEW");

    intent.addCategory("android.intent.category.DEFAULT");

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    Uri uri = Uri.fromFile(file);

    intent.setDataAndType(uri, "application/msword");

    return intent;

    }

    //android获取一个用于打开Excel文件的intent

    public static Intent getExcelFileIntent(File file)

    {

    Intent intent = new Intent("android.intent.action.VIEW");

    intent.addCategory("android.intent.category.DEFAULT");

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    Uri uri = Uri.fromFile(file);

    intent.setDataAndType(uri, "application/vnd.ms-excel");

    return intent;

    }

    //android获取一个用于打开PPT文件的intent

    public static Intent getPPTFileIntent(File file)

    {

    Intent intent = new Intent("android.intent.action.VIEW");

    intent.addCategory("android.intent.category.DEFAULT");

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    Uri uri = Uri.fromFile(file);

    intent.setDataAndType(uri, "application/vnd.ms-powerpoint");

    return intent;

    }

    //android获取一个用于打开apk文件的intent

    public static Intent getApkFileIntent(File file)

    {

    Intent intent = new Intent();

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    intent.setAction(android.content.Intent.ACTION_VIEW);

    intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");

    return intent;

    }

    public static boolean checkEndsWithInStringArray(String checkItsEnd,

    String[] fileEndings){

    for(String aEnd : fileEndings){

    if(checkItsEnd.endsWith(aEnd))

    return true;

    }

    return false;

    }

    public static void openFile(File currentPath){

    if(currentPath!=null&¤tPath.isFile()){

    String fileName = currentPath.toString();

    Intent intent;

    if(checkEndsWithInStringArray(fileName, BaseApp.getContext().getResources().

    getStringArray(R.array.imageFile))){

    intent = OpenFiles.getImageFileIntent(currentPath);

    BaseApp.getContext().startActivity(intent);

    }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().

    getStringArray(R.array.htmlFile))){

    intent = OpenFiles.getHtmlFileIntent(currentPath);

    BaseApp.getContext().startActivity(intent);

    }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().

    getStringArray(R.array.packageFile))){

    intent = OpenFiles.getApkFileIntent(currentPath);

    BaseApp.getContext().startActivity(intent);

    }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().

    getStringArray(R.array.audioFile))){

    intent = OpenFiles.getAudioFileIntent(currentPath);

    BaseApp.getContext().startActivity(intent);

    }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().

    getStringArray(R.array.videoFile))){

    intent = OpenFiles.getVideoFileIntent(currentPath);

    BaseApp.getContext().startActivity(intent);

    }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().

    getStringArray(R.array.textFile))){

    intent = OpenFiles.getTextFileIntent(currentPath);

    BaseApp.getContext().startActivity(intent);

    }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().

    getStringArray(R.array.pdfFile))){

    intent = OpenFiles.getPdfFileIntent(currentPath);

    BaseApp.getContext().startActivity(intent);

    }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().

    getStringArray(R.array.wordFile))){

    intent = OpenFiles.getWordFileIntent(currentPath);

    BaseApp.getContext().startActivity(intent);

    }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().

    getStringArray(R.array.excelFile))){

    intent = OpenFiles.getExcelFileIntent(currentPath);

    BaseApp.getContext().startActivity(intent);

    }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().

    getStringArray(R.array.pptFile))){

    intent = OpenFiles.getPPTFileIntent(currentPath);

    BaseApp.getContext().startActivity(intent);

    }else

    {

    TSLog.e("无法打开,请安装相应的软件!");

    }

    }else{

    TSLog.e("对不起,这不是文件!");

    }

    }

    }

    展开全文
  • 例如,我目前正在尝试启动我的应用程序时打开系统设置,就像设置快捷方式一样.是否可以按照我想要的方式实现?有没有人有什么建议?这是我的代码:import android.app.Activity;import android.content.I...
  • 因此,我想单击目录以外的任何文件时,都希望得到可以打开它的应用程序的建议,如果没有应用程序,则显示一个目录.我尝试了一些解决方案,但没有任何效果,所以,现在,我只是显示文件不是Toast中的目录这是代码的一部分:...
  • } } } 设置意图的Flags值为FLAG_ACTIVITY_NEW_TASK, Action的值为ACTION_VIEW, Data为第一个Intent中获得的Uri, 最后通过Intent的静态方法createChooser(Context context,Uri,uri)弹出选择外部应用打开该文件 ...
  • 通过mimeType和scheme,可以将自己的Activity与特定格式的内容和协议关联起来,从而用自己的Activity去打开这些内容 mimeType指的是内容格式,比如是txt,还是doc,还是ppt等 scheme指的是协议格式,比如是file,...
  • 最近用到WebView 在应用内部加载URL 展示web页面 ,顺便贴出一个简单的示例。对于一般应用,仅用来展示web页面的话,不需要复杂的处理逻辑,但新手在做的过程或最近用到WebView 在应用内部加载URL 展示web页面 ,...
  • 我们都知道电脑系统一般拥有...用户使用安卓手机默认打开方式能够让你省去打开文件时的程序选择操作,让打开随心所欲。不过缺点是要是默认打开方式不是你想要的程序会很麻烦。所有今天教你如何更改默认打开方式!...
  • 我知道如何更新自己的程序,我知道如何使用预定义的Uri(例如短信或电子邮件)打开程序,我需要知道如何创建一个意图打开MyTracks或任何其他应用程序,我不知道他们听的意图。我从DDMS得到这个信息,但我没有成功地把...
  • 如何看到Intent是否可用: >尝试调用Intent并处理ActivityNotFoundException(如果不可用) Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(path,... } 如何将参数传递给应用程序或了解其功能:
  • 9---------我是分割线------------------------------------------------------------------------------原文:最近遇到这么一个需求:当用户在手机浏览器中点击一个按钮时,如果手机上已经该应用程序,则直接打开,...
  • Android启动的四种方式分别为standard,singleTop,singleTask,singleInstence。standard是最常见的activity启动方式,也是默认的启动的方式。当启动一个activity的时候他将进入返回栈的栈顶。系统不会管栈内是否有...
  • 昨天遇到这样一个问题,看别人通过短信位置分享,会有一个链接 ,点击链接会提示我们选择用什么打开(浏览器,UC,自己的APP)奇怪的发现为什么还能启动APP抱着好奇的态度我决定一探究竟。我的第一感觉是在manifest里面...
  • [query]启动应用程序a 这一句就可以了。当然点击浏览器中的URL链接,启动特定的App。首先做成HTML的页面,,页面内容格式如下:启动应用程序这一句就可以了。当然上面的 在标准形式,对于正常情况而言是OK的,但是每...
  • 分析:通过程序安装器打开应用方式与桌面图标打开应用方式是有区别的。具体差别为,通过程序安装器打开应用安卓启动应用的时候,会有一个setPackage的行为,因为这个setPackage的行为,会导...
  • 我正在做一个安全的应用程序,用户可以在其中浏览某些文件,并使用手机上显示的应用程序打开它们.所以就目前而言,我的应用程序确实很安全,文件已经很好地加密,但是我有一个重大的中断.确实,我正在使用我的应用程序打开...
  • 当用户在用mobile browser浏览该网站的时候会点击一个按钮/超链接,通过这个按钮的点击事情需要打开安装在本机的应用程序,或者如果本机没有安装该应用程序则打开应用商店并打开该程序在商店中的搜索结果页面。...
  • 安卓对比iOS的一大优点就是同一类文件或者链接,可以使用不同的App开启,点击这类文件/链接后系统会罗列出支持开启的App,用户可以选择某一个App作为默认开启的App。不过,之前安卓系统中并没有管理文件和App关联的...
  • 分析:通过程序安装器打开应用方式与桌面图标打开应用方式是有区别的。具体差别为,通过程序安装器打开应用安卓启动应用的时候,会有一个setPackage的行为,因为这个setPackage的行为,会导...
  • importandroid.content.ComponentName;importandroid.content.Context;importandroid.content.Intent;importandroid.content.pm.PackageInfo;importandroid.content.pm.PackageManager;importandroid.content.pm.Res...
  • 由于我们正在开发的项目是跨web和Android端的,由于笔者没有ios开发经验,所以暂时没有考虑在ios上的适配。其中一个业务需要下载并调用第三方app打开文件,这里把开发流程和踩过的坑记录一下。首先,我了解到对于...
  • ※注意事项:intent-filter的内容【android.intent.action.MAIN】和 【android.intent.category.LAUNCHER】这2个,不能与这次追加的内容混合。所以。假设增加了同一个Activity,请按下面这样做。否则会导致应用图标...
  • 使用类别android.intent.category.BROWSABLE的android.intent.action.VIEW。android:name=".PhotostreamActivity"android:label="@string/application_name">android:host="flickr....
  • 之前,我做一个功能时,服务器返回一个url地址,我需要跳转到指定网页。...如果手机本身安装了多个浏览器而又没有设置默认浏览器的话,系统将让用户选择使用哪个浏览器来打开连接。Uri uri = Uri.parse("https...
  • Android 打开方式选定后默认了改不回来?解决方法(三星s7为例)刚刚在测试东西,打开一个gif图,然后我故意选择用支付宝打开,然后...支付宝当然不支持,我觉得第二次打开它应该还会问我,没想到它不在弹出让我选择哪个程序...
  • android:name=".PhotostreamActivity"android:label="@string/application_name">android:host="flickr.com"android:pathPrefix="/photos/" />android:host=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 295,580
精华内容 118,232
关键字:

安卓使用其他应用打开方式