Intent呼叫常見系統元件方法:
//開啟設定了 <data android:host=”my.com” android:scheme=”m” />的應用
Intent intent = new Intent();
intent.setData(Uri.parse(“m://my.com”));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
//開啟傳送簡訊介面
Uri uri = Uri.parse(“sms:10086?body=czmm”);
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);
//解除安裝應用
Uri uri = Uri.fromParts(“package”,”com.eg.android.AlipayGphone”,null);
Intent intent = new Intent(Intent.ACTION_DELETE,uri);
startActivity(intent);
//安裝SD卡中apk檔案
if(ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},101);
}else {
Intent intent = new Intent(Intent.ACTION_VIEW);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Uri uri = FileProvider.getUriForFile(MainActivity.this, “com.example.administrator.performance.fileprovider”, new File(“/sdcard/123.apk”));
intent.setDataAndType(uri, “application/vnd.android.package-archive”);
intent.setClipData(ClipData.newRawUri(MediaStore.EXTRA_OUTPUT, uri));
} else {
intent.setDataAndType(Uri.fromFile(new File(“/sdcard/123.apk”)), “application/vnd.android.package-archive”);
}
startActivity(intent);
}
//在應用市場找應用,如果手機上安裝了多個應用商店,會先讓你選擇商店,然後再搜尋應用
Uri uri = Uri.parse(“market://search?q=憤怒的小鳥”);
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);
//傳送簡訊,與上面效果一樣
int schemaIndex = url.indexOf(“sms:”);
int wenIndex = url.indexOf(“?”);
int bodyIndex = url.indexOf(“body”);
String msg_telString=url.substring(schemaIndex 4,wenIndex);
String msg_textString=url.substring(bodyIndex 5);
Uri uriMsg=Uri.parse(“smsto:” msg_telString);
Intent intentMsg=new Intent();
intentMsg.setAction(Intent.ACTION_SENDTO);
intentMsg.putExtra(“sms_body”, msg_textString);
intentMsg.setType(“vnd.android-dir/mms-sms”); //簡訊的MIME型別
intentMsg.setData(uriMsg);
startActivity(intentMsg);
//直接撥打電話
Uri uriTel=Uri.parse(“tel:10086”);
Intent intentTel=new Intent();
intentTel.setAction(Intent.ACTION_CALL);
intentTel.setData(uriTel);
startActivity(intentTel);
//開啟撥號盤介面
Uri uriTel=Uri.parse(“tel:10086”);
Intent intentTel=new Intent(Intent.ACTION_VIEW,uriTel);
startActivity(intentTel);
//開啟淘寶,支付寶,天貓
if(url.startsWith(“taobao:”)){
if(ApkUtils.isAPPInstalled(getApplicationContext(),”com.taobao.taobao”)) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
}else{
Toast.makeText(getApplicationContext(),”請先安裝淘寶”,Toast.LENGTH_LONG).show();
}
}else if(url.startsWith(“alipays:”)){
if(ApkUtils.isAPPInstalled(getApplicationContext(),”com.eg.android.AlipayGphone”)){
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
startActivity(intent);
}else{
Toast.makeText(getApplicationContext(),”請先安裝支付寶”,Toast.LENGTH_LONG).show();
}
}else if(url.startsWith(“tmall:”)){
if(ApkUtils.isAPPInstalled(getApplicationContext(),”com.tmall.wireless”)){
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
startActivity(intent);
}else{
Toast.makeText(getApplicationContext(),”請先安裝天貓”,Toast.LENGTH_LONG).show();
}
}
public static boolean isAPPInstalled(Context context, String packageName) {
PackageInfo packageInfo;
try {
packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);
} catch (PackageManager.NameNotFoundException e) {
packageInfo = null;
e.printStackTrace();
}
return packageInfo != null;
}
写评论
很抱歉,必須登入網站才能發佈留言。