从外部调起应用的Activity方法大全

    xiaoxiao2026-09-02  2

    原文: http://blog.csdn.net/wangqjpp/article/details/50866437 今天正好用到,感觉总结得很全,mark一下 从任意app,启动另外一个app的activity: 1.   Intent i = new Intent();       ComponentName cn = new ComponentName("com.book.android2",  "com.book.android2.AndroidSearch");       i.setComponent(cn);       i.setAction("android.intent.action.MAIN");       startActivity(i); //or startActivityForResult(i, RESULT_OK);  我用这种方法时,绝大部分应用可以启动,但是像RootExplorer却无法启动,出现FC对话框,因此建议使用下面这种方式: 2.    Intent it = new Intent("android.intent.action.MAIN"); it.setClassName("com.speedsoftware.rootexplorer","com.speedsoftware.rootexplorer.RootExplorer"); startActivity(it); 如果你需要启动一个你自己写的另一个app的activity,你可以在那个的menifest.xml里自定义activity的action: < activity  android:name =" .MainActivity "   android:label =" @string/app_name " android:theme =" @android:style/Theme.Black.NoTitleBar.Fullscreen " > <intent-filter>   <action android:name=" com.qylk.call.main" />    <!-- 自定义的action-->   <action android:name=" android.intent.action.MAIN" />   <category android:name=" android.intent.category.LAUNCHER" />   <category android:name=" android.intent.category.DEFAULT" /> <!--必须加上这个,否则下面无法直接使用自定的action-->   </intent-filter>   </activity> 其他地方启动它: Intent it = new Intent(" com.qylk.call.main ");  startActivity(it); 3.使用adb启动activity: 启动RootExolorer: am start -a android.intent.action.MAIN -n com.speedsoftware.rootexplorer/.RootExplorer 启动系统设置: am start -a android.settings.SETTINGS (转载):android系统Action常量(其实不算全) android intent和intent action大全  1.从google搜索内容  Intent intent = new Intent();  intent.setAction(Intent.ACTION_WEB_SEARCH);  intent.putExtra(SearchManager.QUERY,"searchString")  startActivity(intent);  2.浏览网页  Uri uri = Uri.parse("http://www.google.com");  Intent it  = new Intent(Intent.ACTION_VIEW,uri);  startActivity(it);  3.显示地图  Uri uri = Uri.parse("geo:38.899533,-77.036476");  Intent it = new Intent(Intent.Action_VIEW,uri);  startActivity(it);  4.路径规划  Uri uri = Uri.parse("http://maps.google.com/maps?f=dsaddr=startLat%20startLng&daddr=endLat%20endLng&hl=en");  Intent it = new Intent(Intent.ACTION_VIEW,URI);  startActivity(it);  5.拨打电话  Uri uri = Uri.parse("tel:xxxxxx");  Intent it = new Intent(Intent.ACTION_DIAL, uri);    startActivity(it);   //<uses-permission id="android.permission.CALL_PHONE" />  6.调用发短信的程序  Intent it = new Intent(Intent.ACTION_VIEW);     it.putExtra("sms_body", "The SMS text");     it.setType("vnd.android-dir/mms-sms");     startActivity(it);  7.发送短信  Uri uri = Uri.parse("smsto:0800000123");     Intent it = new Intent(Intent.ACTION_SENDTO, uri);     it.putExtra("sms_body", "The SMS text");     startActivity(it);  String body="this is sms demo";  Intent mmsintent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("smsto", number, null));  mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body);  mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, true);  mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, true);  startActivity(mmsintent);  8.发送彩信  Uri uri = Uri.parse("content://media/external/images/media/23");     Intent it = new Intent(Intent.ACTION_SEND);     it.putExtra("sms_body", "some text");     it.putExtra(Intent.EXTRA_STREAM, uri);     it.setType("image/png");     startActivity(it);  StringBuilder sb = new StringBuilder();  sb.append("file://");  sb.append(fd.getAbsoluteFile());  Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mmsto", number, null));  // Below extra datas are all optional.  intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_SUBJECT, subject);  intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body);  intent.putExtra(Messaging.KEY_ACTION_SENDTO_CONTENT_URI, sb.toString());  intent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, composeMode);  intent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, exitOnSent);  startActivity(intent);  9.发送Email  Uri uri = Uri.parse("mailto:xxx@abc.com");  Intent it = new Intent(Intent.ACTION_SENDTO, uri);  startActivity(it);  Intent it = new Intent(Intent.ACTION_SEND);     it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");     it.putExtra(Intent.EXTRA_TEXT, "The email body text");     it.setType("text/plain");      startActivity(Intent.createChooser(it, "Choose Email Client"));  Intent it=new Intent(Intent.ACTION_SEND);       String[] tos={"me@abc.com"};       String[] ccs={"you@abc.com"};       it.putExtra(Intent.EXTRA_EMAIL, tos);       it.putExtra(Intent.EXTRA_CC, ccs);       it.putExtra(Intent.EXTRA_TEXT, "The email body text");       it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");       it.setType("message/rfc822");       startActivity(Intent.createChooser(it, "Choose Email Client"));     Intent it = new Intent(Intent.ACTION_SEND);     it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");     it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3");     sendIntent.setType("audio/mp3");     startActivity(Intent.createChooser(it, "Choose Email Client"));  10.播放多媒体    Intent it = new Intent(Intent.ACTION_VIEW);  Uri uri = Uri.parse("file:///sdcard/song.mp3");  it.setDataAndType(uri, "audio/mp3");  startActivity(it);  Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");     Intent it = new Intent(Intent.ACTION_VIEW, uri);     startActivity(it);  11.卸载 Uri uri = Uri.fromParts("package", strPackageName, null);     Intent it = new Intent(Intent.ACTION_DELETE, uri);     startActivity(it);  12.安装 Uri installUri = Uri.fromParts("package", "xxx", null);  returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);  13. 打开照相机      Intent i = new Intent(Intent.ACTION_CAMERA_BUTTON, null);      this.sendBroadcast(i);       long dateTaken = System.currentTimeMillis();      String name = createName(dateTaken) + ".jpg";      fileName = folder + name;      ContentValues values = new ContentValues();      values.put(Images.Media.TITLE, fileName);      values.put("_data", fileName);      values.put(Images.Media.PICASA_ID, fileName);      values.put(Images.Media.DISPLAY_NAME, fileName);      values.put(Images.Media.DESCRIPTION, fileName);      values.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, fileName);      Uri photoUri = getContentResolver().insert(                      MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);      Intent inttPhoto = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);      inttPhoto.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);      startActivityForResult(inttPhoto, 10);  14.从gallery选取图片    Intent i = new Intent();    i.setType("image/*");    i.setAction(Intent.ACTION_GET_CONTENT);    startActivityForResult(i, 11);  15. 打开录音机     Intent mi = new Intent(Media.RECORD_SOUND_ACTION);     startActivity(mi);  16.显示应用详细列表        Uri uri = Uri.parse("market://details?id=app_id");          Intent it = new Intent(Intent.ACTION_VIEW, uri);          startActivity(it);                17.寻找应用       刚才找app id未果,结果发现用package name也可以  Uri uri = Uri.parse("market://details?id=<packagename>");  这个简单多了    Uri uri = Uri.parse("market://search?q=pname:pkg_name");          Intent it = new Intent(Intent.ACTION_VIEW, uri);          startActivity(it);        18.打开联系人列表                        Intent i = new Intent();             i.setAction(Intent.ACTION_GET_CONTENT);             i.setType("vnd.android.cursor.item/phone");             startActivityForResult(i, REQUEST_TEXT);              Uri uri = Uri.parse("content://contacts/people");              Intent it = new Intent(Intent.ACTION_PICK, uri);              startActivityForResult(it, REQUEST_TEXT);  20.调用系统编辑添加联系人(高版本SDK有效):  Intent it = new Intent(Intent.ACTION_INSERT_OR_EDIT);                  it.setType("vnd.android.cursor.item/contact");                  // it.setType(Contacts.CONTENT_ITEM_TYPE);                  it.putExtra("name", "myName");                  it.putExtra(android.provider.Contacts.Intents.Insert.COMPANY,  "organization");                  it.putExtra(android.provider.Contacts.Intents.Insert.EMAIL, "email");                  it.putExtra(android.provider.Contacts.Intents.Insert.PHONE,"homePhone");                  it.putExtra( android.provider.Contacts.Intents.Insert.SECONDARY_PHONE,                                  "mobilePhone");                  it.putExtra(  android.provider.Contacts.Intents.Insert.TERTIARY_PHONE,                                  "workPhone");                  it.putExtra(android.provider.Contacts.Intents.Insert.JOB_TITLE,"title");                  startActivity(it);  21.调用系统编辑添加联系人(全有效):  Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);              intent.setType(People.CONTENT_ITEM_TYPE);              intent.putExtra(Contacts.Intents.Insert.NAME, "My Name");              intent.putExtra(Contacts.Intents.Insert.PHONE, "+1234567890");              intent.putExtra(Contacts.Intents.Insert.PHONE_TYPE, Contacts.PhonesColumns.TYPE_MOBILE);              intent.putExtra(Contacts.Intents.Insert.EMAIL, "com@com.com");              intent.putExtra(Contacts.Intents.Insert.EMAIL_TYPE,                                 Contacts.ContactMethodsColumns.TYPE_WORK);              startActivity(intent);  23.最基本的share 信息的intent,可以传一段text信息到各个手机上已安装程序:      如SMS,Email,sina微波,米聊,facebook,twitter等等              Intent it = new Intent(Intent.ACTION_SEND);                  it.putExtra(Intent.EXTRA_TEXT, "The email subject text");              it.setType("text/plain"); 

                startActivity(Intent.createChooser(it, "Choose Email Client")); 

    转载请注明原文地址: https://ju.6miu.com/read-1311809.html
    最新回复(0)