總結(jié)安卓(Android)中常用的跳轉(zhuǎn)工具
話不多說了,直接上代碼,這篇文章包含了一些基本的并且常用的跳轉(zhuǎn)工具,一起來看看吧。
首先,這是需要的對(duì)應(yīng)的權(quán)限。
<uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
代碼:
import android.app.Activity; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Environment; import android.provider.MediaStore; import android.provider.Settings; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Toast; import java.io.File; import frame.zmit.cn.publicutils.R; /** * Created by joy on 2016/7/21. * 工具集合 */ public class MainActivity extends AppCompatActivity { private String mImagePath;//返回的圖片路徑 private final static int REQUEST_CODE_GALLERY = 0x11; private final static int REQUEST_CODE_CAMERA = 0x12; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /** * 打開微信 */ findViewById(R.id.btn_open_weixin).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = getPackageManager().getLaunchIntentForPackage("com.tencent.mm"); startActivity(intent); } }); /** * 跳轉(zhuǎn)到QQ聊天界面 */ findViewById(R.id.btn_open_qq).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String mQqNumber = "98*****08"; String url11 = "mqqwpa://im/chat?chat_type=wpa&uin=" + mQqNumber + "&version=10"; startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url11))); } }); /** * 跳轉(zhuǎn)到聯(lián)系人界面 */ findViewById(R.id.btn_people_interface).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClassName("com.android.contacts", "com.android.contacts.activities.PeopleActivity"); startActivity(intent); } }); /** * 跳轉(zhuǎn)到撥號(hào)界面 */ findViewById(R.id.btn_telephone_interface).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String phone = "157*****737"; Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phone)); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } }); /** * 直接撥打電話 */ findViewById(R.id.btn_telephone).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String phone = "157*****737"; Intent intentPhone = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone)); startActivity(intentPhone); } }); /** * 跳轉(zhuǎn)到短信界面 */ findViewById(R.id.btn_message_interface).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setType("vnd.android-dir/mms-sms"); startActivity(intent); } }); /** * 跳轉(zhuǎn)到短信界面 * 指定號(hào)碼和短信內(nèi)容 */ findViewById(R.id.btn_message).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String phone = "157*****737"; String message = "這是一個(gè)自定義的內(nèi)容"; Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + phone)); intent.putExtra("sms_body", message); startActivity(intent); } }); /** * 跳轉(zhuǎn)到設(shè)置界面 */ findViewById(R.id.btn_setting_interface).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Settings.ACTION_SETTINGS); startActivity(intent); } }); /** * 跳轉(zhuǎn)到藍(lán)牙界面 */ findViewById(R.id.btn_bluetooth_interface).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Settings.ACTION_BLUETOOTH_SETTINGS); startActivity(intent); } }); /** * 調(diào)用瀏覽器 */ findViewById(R.id.btn_browser).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction("android.intent.action.VIEW"); Uri content_url = Uri.parse("http://www.baidu.com"); intent.setData(content_url); startActivity(intent); } }); /** * 打開照相機(jī) */ findViewById(R.id.btn_camera).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mImagePath = chooseImageFromCamera(MainActivity.this, REQUEST_CODE_CAMERA, "cameraImage"); } }); /** * 打開相冊并獲取圖片地址 */ findViewById(R.id.btn_gallery).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_PICK, null); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); startActivityForResult(intent, REQUEST_CODE_GALLERY); } }); } public String chooseImageFromCamera(Activity activity, int requestCode, String imageName) { Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); File file = new File(Environment.getExternalStorageDirectory() + "/Images"); if (!file.exists()) { file.mkdirs(); } String savePath = Environment.getExternalStorageDirectory() + "/Images/" + imageName + String.valueOf(System.currentTimeMillis()) + ".jpg"; Uri mUri = Uri.fromFile( new File(savePath)); cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mUri); cameraIntent.putExtra("return-data", true); activity.startActivityForResult(cameraIntent, requestCode); return savePath; } public String onActivityResultForChooseImageFromGallery( Context context, int requestCode, int resultCode, Intent data) { String imagePath = null; if (data != null) { if ("file".equals(data.getData().getScheme())) { /** 有些低版本機(jī)型返回的Uri模式為file*/ imagePath = data.getData().getPath(); } else { Uri selectedImage = data.getData(); String[] filePathColumn = {MediaStore.Images.Media.DATA}; Cursor cursor = context.getContentResolver().query(selectedImage, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); imagePath = cursor.getString(columnIndex); cursor.close(); } return imagePath; } else { return null; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case REQUEST_CODE_GALLERY: mImagePath = onActivityResultForChooseImageFromGallery(MainActivity.this, requestCode, resultCode, data); if (mImagePath != null && mImagePath.length() > 0) { Toast.makeText(MainActivity.this, mImagePath, Toast.LENGTH_SHORT).show(); } break; case REQUEST_CODE_CAMERA: if (mImagePath != null && mImagePath.length() > 0) { Toast.makeText(MainActivity.this, mImagePath, Toast.LENGTH_SHORT).show(); } break; } } }
總結(jié)
總結(jié)安卓(Android)中常用的跳轉(zhuǎn)工具到這就結(jié)束了,這篇文章整理的這些跳轉(zhuǎn)工具類很常見,所以才是最實(shí)用的,希望本文對(duì)大家日常開發(fā)Android能有所幫助。
- Android View進(jìn)行手勢識(shí)別詳解
- Android 屏幕雙擊事件的捕獲簡單示例
- Android中圖片的三級(jí)緩存機(jī)制
- Android自定義View實(shí)現(xiàn)圓環(huán)交替效果
- Android 調(diào)試工具用法詳細(xì)介紹
- Android自定義view實(shí)現(xiàn)水波紋進(jìn)度球效果
- Android 源碼如何編譯調(diào)試
- 輕松實(shí)現(xiàn)安卓(Android)九宮格解鎖
- Android禁止橫屏豎屏切換的有效方法
- Android Service判斷設(shè)備聯(lián)網(wǎng)狀態(tài)詳解
相關(guān)文章
Android 8.0不能自動(dòng)安裝APK問題的解決方法(完美適配)
這篇文章主要給大家介紹了關(guān)于Android 8.0不能自動(dòng)安裝APK問題的解決方法(完美適配),這里的自動(dòng)安裝是指下載完成后,自動(dòng)彈出安裝界面,而不是靜默安裝APK,文中介紹的非常詳細(xì),需要的朋友可以參考下2018-07-07android開發(fā)仿ios的UIScrollView實(shí)例代碼
下面小編就為大家分享一篇android開發(fā)仿ios的UIScrollView實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01Android中深入學(xué)習(xí)對(duì)象的四種引用類型
這篇文章主要介紹Android中深入學(xué)習(xí)對(duì)象的四種引用類型,Java中,一切被視為對(duì)象,引用則是用來操縱對(duì)象的;在JDK1.2就把對(duì)象引用分為四種級(jí)別,從而使程序能更靈活控制它的生命周期,級(jí)別由高到底依次為強(qiáng)引用、軟引用、弱引用、虛引用,需要的朋友可以參考一下2021-10-10Android中ListView綁定CheckBox實(shí)現(xiàn)全選增加和刪除功能(DEMO)
本文通過實(shí)例給大家講解了Android中ListView綁定CheckBox實(shí)現(xiàn)全選增加和刪除功能(DEMO)的代碼,對(duì)android checkbox全選相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-08-08Android程序報(bào)錯(cuò)程序包org.apache.http不存在問題的解決方法
這篇文章主要介紹了Android程序報(bào)錯(cuò)"程序包org.apache.http不存在——Android 6.0已經(jīng)不支持HttpClient" 問題的解決方法,感興趣的小伙伴們可以參考一下2016-06-06Android自定義View實(shí)現(xiàn)水波紋擴(kuò)散效果
這篇文章主要為大家詳細(xì)介紹了Android如何通過自定義View實(shí)現(xiàn)水波紋擴(kuò)散效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-08-08