Android系统分享到app,android 分享或者调用系统或者其他app时 应注意! startActivityForResult() 使用...

//判断是否有相应的Activity来接受intent

PackageManager packageManager = getPackageManager();

List activities = packageManager.queryIntentActivities(intent, 0);

boolean isIntentSafe = activities.size() > 0;

如果 isIntentSafe 为true 则有相应的Activity来接受 反之则无。

//始终弹出dialog让用户选择

Intent chooser = Intent.createChooser(intent, "请选择");

始终让用户选择使用什么App打开

判断启动:

if (isIntentSafe){

startActivity(chooser);

}

跳转很简单:

//跳转到通讯录

Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts"));

pickContactIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);

然后启动:

startActivityForResult(pickContactIntent ,1); //传一个1过去,当在返回的时候看是否返回成功的关键

在Acitivity中实现:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == 1){

if (resultCode == -1){//返回结果的code是-1则成功,0则是空

Uri uri = data.getData();

String[] projection = {ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME};

Cursor cursor = getContentResolver().query(uri, projection,null,null,null);

cursor.moveToFirst();

int column1 = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);

int column2 = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);

String number = cursor.getString(column1);

String name = cursor.getString(column2);

Log.i("CCCCCCCCCCCCCCC",number);

Log.i("NNNNNNNNNNNNNNN",name);

}

}

}

Android上传图片之调用系统拍照和从相冊选择图片

Android上传图片之调用系统拍照和从相冊选择图片 本篇文章已授权微信公众号 guolin_blog (郭霖)独家公布 前言: 万丈高楼平底起,万事起于微末.不知不觉距离上篇博文已近四个月,2015 ...

linux c编程调用系统的动态库时,要使用dlopen等函数吗?

同问 linux c编程调用系统的动态库时,要使用dlopen等函数吗? 2012-11-27 21:55 提问者: hnwlxyzhl 我来帮他解答 满意回答 2012-12-07 09:08 li ...

Android下载图片/调用系统相机拍照、显示并保存到本地

package com.example.testhttpget; import java.io.BufferedReader; import java.io.FileNotFoundException ...

【Android学习】调用系统相机

Android调用系统相机分三步走: 首先是要设置调用相机的权限. 其次是给按钮加打开相机的事件. 最后是拍照后进行图片的保存. 第一步,添加权限: &lt ...

Android 调用系统的邮箱app发送邮件

第一种: String[] email = { "3802**92@qq.com" }; // 需要注意,email必须以数组形式传入 Intent intent = new In ...

android 7.0 调用系统相机崩溃的解决方案(非谷歌官方推荐)

解决方案: 1.(推荐)7.0之后你的app就算有权限,给出一个URI之后手机也认为你没有权限. 不用修改原有代码,在Application的oncreate方法中:(或者直接放在调用相机的activ ...

【Android学习】调用系统短信、电话

今天全心投入Android学习已经有一段时间了,从起初的啥也不懂,到现在半知半解状态,随笔记录些简单且常用的系统功能代码. 调用Android系统短信,其实调用短信非常简单,一个方法就可以搞定.我们可 ...

android ----- 分享的连接在手机上打开App

首先做成HTML的页面,页面内容格式如下: 启动应用程序 这一 ...

Android笔记之调用系统相机拍照

参考链接: 拍照  |  Android Developers, Android相机拍照方向旋转的解决方案:ExifInterface - 简书 Demo链接:https://pan.baidu.co ...

随机推荐

oracle执行计划之-表连接方式

转载自:http://blog.csdn.net/tianlesoftware/article/details/5826546 在多表联合查询的时候,如果我们查看它的执行计划,就会发现里面有多表之间的 ...

android ndk开发(二)实现一个官方demo

实现了一个官方的demo:bitmap-plasma(水波纹) 源代码就在samples文件夹下,可以自己去找. 界面: 建立项目的步骤和配置环境不明白的可以去看:http://www.cnblogs ...

常见的几种RuntimeException

一般面试中java Exception(runtimeException )是必会被问到的问题 常见的异常列出四五种,是基本要求.更多的....需要注意积累了   常见的几种如下:   NullPoi ...

基于TCP的通信 客户端

#include #include // socket 套接字 #pragma comment (lib,"Ws2_32 ...

Uva 552 Prime Ring Problem(dfs)

题目链接:Uva 552 思路分析:时间限制为3s,数据较小,使用深度搜索查找所有的解. 代码如下: #include #include

[LeetCode258]	Add Digits 非负整数各位相加

题目: Given a non-negative integer num, repeatedly add all its digits until the result has only one di ...

error C2039: 'SetDefaultDllDirectories'错误解决办法

使用VS2013+WDK8.1+Win7开发UMDF驱动,当使用了CComPtr类,包含了atlcomcli.h头文件却报错,错误如下: Error 3 error C2039: 'SetDefaul ...

DBCC page 数据页 堆 底层数据分布大小计算

1.行的总大小: Row_Size = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap + 4(4是指行标题开销) 开销定义: Fixed_Dat ...

http请求contentype详解

请求头 在http请求头中有一项重要的参数就是contentype,用来告诉浏览器,我服务器传送过来的数据是什么格式,这样浏览器才知道怎么去解析服务器传过来的数据 urlencoded 通常我们for ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`startActivityForResult()` 方法用于启动另一个 Activity 并且期望该 Activity 返回结果。使用该方法需要传递两个参数: 1. `Intent` 对象:用于指定要启动的 Activity。 2. `int` 类型的请求代码(requestCode):用于标识该请求。 启动 Activity 后,如果该 Activity 调用了 `setResult()` 方法并且将结果返回给了当前 Activity,那么系统调用当前 Activity 的 `onActivityResult()` 方法,并将结果传递给该方法。 以下是使用 `startActivityForResult()` 方法的示例代码: ```java // 在当前 Activity 中启动另一个 Activity 并传递请求码 // 请求码可以是任意整数,在 onActivityResult() 方法中用于标识该请求 Intent intent = new Intent(this, AnotherActivity.class); int requestCode = 1; startActivityForResult(intent, requestCode); ``` 在启动的 Activity 中,如果需要返回结果,可以通过 `setResult()` 方法将结果传递给当前 Activity: ```java // 在启动的 Activity 中设置返回结果并关闭该 Activity Intent data = new Intent(); data.putExtra("result", "Hello, world!"); setResult(RESULT_OK, data); finish(); ``` 在当前 Activity 中,可以通过 `onActivityResult()` 方法获取结果: ```java // 在当前 Activity 中处理返回结果 @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1 && resultCode == RESULT_OK) { // 获取返回结果 String result = data.getStringExtra("result"); // 处理返回结果 // ... } } ``` 需要注意的是,如果启动的 Activity 在返回结果调用了 `finish()` 方法关闭了自身,则当前 Activity 的 `onActivityResult()` 方法不会被调用。因此,在启动的 Activity该在返回结果之前先判断是否需要关闭自身。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值