zoukankan      html  css  js  c++  java
  • android 分享或者调用系统或者其他app时 应注意! startActivityForResult() 使用

    //判断是否有相应的Activity来接受intent
    PackageManager packageManager = getPackageManager();
    List<ResolveInfo> 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);
    }
    }
    }


  • 相关阅读:
    倒下
    我还能相信谁

    工作这点事
    人,这东西
    祝福
    路,公车和鞋子
    那片海
    document.querySelector bug All In One
    js logical or assignment bug All In One
  • 原文地址:https://www.cnblogs.com/android-host/p/5302102.html
Copyright © 2011-2022 走看看