- 检查软件包有没有安装过:
- package com.example.myapi.thirdbaidumap;
- import java.net.URISyntaxException;
- import java.util.ArrayList;
- import java.util.List;
- import android.app.Activity;
- import android.content.Context;
- import android.content.Intent;
- import android.content.pm.PackageInfo;
- import android.content.pm.PackageManager;
- import android.net.Uri;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import com.example.myapi.R;
- /**
- * 测试程序跳转到第三方地图,并将数据传递过去。
- * @author tony
- *
- */
- public class ThirdBaiduMapTestActivity extends Activity implements OnClickListener{
- private Button btn_test;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.thirdbaidumaptest);
- btn_test = (Button)findViewById(R.id.baidu_btn_test);
- btn_test.setOnClickListener(this);
- }
- @Override
- public void onClick(View v) {
- switch(v.getId()){
- case R.id.baidu_btn_test:
- //如果已安装,
- if(isAvilible(this,"com.baidu.BaiduMap")){//传入指定应用包名
- Intent intent = null;
- try {
- // intent = Intent.getIntent("intent://map/direction?origin=latlng:34.264642646862,108.95108518068|name:我家&destination=大雁塔&mode=driving®ion=西安&src=yourCompanyName|yourAppName#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");
- intent = Intent.getIntent("intent://map/direction?" +
- "origin=大柏树&" +
- "destination=江湾镇" +
- "&mode=driving&" +
- "region=上海市" +
- "&src=yourCompanyName|yourAppName#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");
- startActivity(intent); //启动调用
- } catch (URISyntaxException e) {
- Log.e("intent", e.getMessage());
- }
- }else{//未安装
- //market为路径,id为包名
- //显示手机上所有的market商店
- Uri uri = Uri.parse("market://details?id=com.baidu.BaiduMap");
- Intent intent = new Intent(Intent.ACTION_VIEW, uri);
- startActivity(intent);
- }
- break;
- }
- }
- /**
- * 检查手机上是否安装了指定的软件
- * @param context
- * @param packageName:应用包名
- * @return
- */
- private boolean isAvilible(Context context, String packageName){
- //获取packagemanager
- final PackageManager packageManager = context.getPackageManager();
- //获取所有已安装程序的包信息
- List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);
- //用于存储所有已安装程序的包名
- List<String> packageNames = new ArrayList<String>();
- //从pinfo中将包名字逐一取出,压入pName list中
- if(packageInfos != null){
- for(int i = 0; i < packageInfos.size(); i++){
- String packName = packageInfos.get(i).packageName;
- packageNames.add(packName);
- }
- }
- //判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE
- return packageNames.contains(packageName);
- }
- }
-
-
- 获取手机信息:
-
- private ArrayList<SamContact> getAllContacts()
- {
- ArrayList<SamContact> arrayList = new ArrayList<SamContact>();
- //获取本机联系人
- Cursor cur = getContentResolver().query(
- ContactsContract.Contacts.CONTENT_URI,
- null ,
- null ,
- null ,
- ContactsContract.Contacts.DISPLAY_NAME
- + " COLLATE LOCALIZED ASC" );
- if(cur.moveToFirst())
- {
- do{
- SamContact samContact = new SamContact();
- samContact.isChoosed = false;
- int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);
- int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
- // 获得联系人的ID号
- String contactId = cur.getString(idColumn);
- // 获得联系人姓名
- String disPlayName = cur.getString(displayNameColumn);
- System.out.println(disPlayName);
- samContact.name = disPlayName;
- // 查看该联系人有多少个电话号码。如果没有这返回值为0
- int phoneCount = cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
- if(phoneCount <1)
- {
- continue;
- }
- Cursor phones = getContentResolver().query(
- ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
- null ,
- ContactsContract.CommonDataKinds.Phone.CONTACT_ID
- + " = " + contactId, null , null );
- if (phones.moveToFirst())
- {
- do {
- // 遍历所有的电话号码
- String phoneNumber = phones
- .getString(phones
- .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
- int phoneType = phones
- .getInt(phones
- .getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
- if(phoneType == ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
- {
- samContact.phone = phoneNumber;
- arrayList.add(samContact);
- break;
- }
- } while (phones.moveToNext());
- }
- }while(cur.moveToNext());
- }
- //获取sim卡联系人
- Uri uri = Uri.parse("content://icc/adn");
- Cursor cur2 = getContentResolver().query(
- uri,
- null ,
- null ,
- null ,
- ContactsContract.Contacts.DISPLAY_NAME
- + " COLLATE LOCALIZED ASC" );
- System.out.println("contact num from sim card = "+cur2.getCount());
- System.out.println("---------------");
- if(cur2.moveToFirst())
- {
- do{
- try
- {
- SamContact samContact = new SamContact();
- samContact.isChoosed = false;
- int displayNameColumn = cur2.getColumnIndex(People.NAME);
- int phoneColumn = cur2.getColumnIndex(People.NUMBER);
- samContact.name = cur2.getString(displayNameColumn);
- if(samContact.name == null)
- {
- continue;
- }
- samContact.phone = cur2.getString(phoneColumn);
- if(samContact.phone == null)
- {
- continue;
- }
- arrayList.add(samContact);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }while(cur2.moveToNext());
- }
- return arrayList;
- }
- public static class SamContact
- {
- public String name = "";
- public String phone = "";
- public boolean isChoosed = false;
- }
http://blog.youkuaiyun.com/ljb_blog/article/details/11047655
http://samyou.iteye.com/blog/1047270
android 读取手机信息
最新推荐文章于 2025-06-08 16:41:34 发布