public class OpenAppUtils {
/**
* 已知包名和啓動類
*
* @param context
* @param packageName
* @param className
*/
public static void startApp(Context context, String packageName, String className) {
Intent intent = new Intent(Intent.ACTION_MAIN);
//intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName cn = new ComponentName(packageName, className);
intent.setComponent(cn);
if (context instanceof Activity) {
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
} else {
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
context.startActivity(intent);
}
/**
* 已知包名和啓動類
*
* @param context
* @param packageName
* @param className
* @param args
*/
public static void startApp(Context context, String packageName, String className, Bundle args) {
Intent intent = new Intent(Intent.ACTION_MAIN);
//intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName cn = new ComponentName(packageName, className);
intent.setComponent(cn);
if (context instanceof Activity) {
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
} else {
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
intent.putExtras(args);
context.startActivity(intent);
}
/**
* 只知包名不知類名
* @param context
* @param packageName
*/
public static void openApp(Context context, String packageName) {
PackageManager pm = context.getPackageManager();
PackageInfo pi = null;
try {
pi = pm.getPackageInfo(packageName, 0);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(pi.packageName);
// 返回符合條件的ACTIVITY集合
List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0);
// 只要符合條件就啓動,太多了就不知道啓動哪個了
ResolveInfo ri = apps.iterator().next();
if (ri != null) {
String packageNameTemp = ri.activityInfo.packageName;
String classNameTemp = ri.activityInfo.name;
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
if (context instanceof Activity) {
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
} else {
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
ComponentName cn = new ComponentName(packageNameTemp, classNameTemp);
intent.setComponent(cn);
context.startActivity(intent);
}
}
/**
* 打開設置界面
* 經過測試,使用下面字段可以在軟件中直接打開相應的系統界面
com.android.settings.AccessibilitySettings 輔助功能設置
com.android.settings.ActivityPicker 選擇活動
com.android.settings.ApnSettings APN設置
com.android.settings.ApplicationSettings 應用程序設置
com.android.settings.BandMode 設置GSM/UMTS波段
com.android.settings.BatteryInfo 電池信息
com.android.settings.DateTimeSettings 日期和壩上旅遊網時間設置
com.android.settings.DateTimeSettingsSetupWizard 日期和時間設置
com.android.settings.DevelopmentSettings 應用程序設置=》開發設置
com.android.settings.DeviceAdminSettings 設備管理器
com.android.settings.DeviceInfoSettings 關於手機
com.android.settings.Display 顯示——設置顯示字體大小及預覽
com.android.settings.DisplaySettings 顯示設置
com.android.settings.DockSettings 底座設置
com.android.settings.IccLockSettings SIM卡鎖定設置
com.android.settings.InstalledAppDetails 語言和鍵盤設置
com.android.settings.LanguageSettings 語言和鍵盤設置
com.android.settings.LocalePicker 選擇手機語言
com.android.settings.LocalePickerInSetupWizard 選擇手機語言
com.android.settings.ManageApplications 已下載(安裝)軟件列表
com.android.settings.MasterClear 恢復出廠設置
com.android.settings.MediaFormat 格式化手機閃存
com.android.settings.PhysicalKeyboardSettings 設置鍵盤
com.android.settings.PrivacySettings 隱私設置
com.android.settings.ProxySelector 代理設置
com.android.settings.RadioInfo 手機信息
com.android.settings.RunningServices 正在運行的程序(服務)
com.android.settings.SecuritySettings 位置和安全設置
com.android.settings.Settings 系統設置
com.android.settings.SettingsSafetyLegalActivity 安全信息
com.android.settings.SoundSettings 聲音設置
com.android.settings.TestingSettings 測試——顯示手機信息、電池信息、使用情況統計、Wifi information、服務信息
com.android.settings.TetherSettings 綁定與便攜式熱點
com.android.settings.TextToSpeechSettings 文字轉語音設置
com.android.settings.UsageStats 使用情況統計
com.android.settings.UserDictionarySettings 用戶詞典
com.android.settings.VoiceInputOutputSettings 語音輸入與輸出設置
com.android.settings.WirelessSettings 無線和網絡設置
* @param context
*/
public static void openSetting(Context context){
//判斷手機系統的版本 即API大於10 就是3.0或以上版本
if(android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.GINGERBREAD_MR1){
Intent intent = new Intent(android.provider.Settings.ACTION_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}else{
Intent intent = new Intent();
ComponentName component = new ComponentName("com.android.settings", "com.android.settings.Settings");
intent.setComponent(component);
intent.setAction("android.intent.action.VIEW");
context.startActivity(intent);
}
}
/**
* 打開無線和網絡設置界面
* @param context
*/
public static void openNetSetting(Context context){
//判斷手機系統的版本 即API大於10 就是3.0或以上版本
if(android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.GINGERBREAD_MR1){
Intent intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}else{
Intent intent = new Intent();
ComponentName component = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");
intent.setComponent(component);
intent.setAction("android.intent.action.VIEW");
context.startActivity(intent);
}
}
/**
* 打開wifi設置界面
* @param context
*/
public static void openWifiSetting(Context context){
//判斷手機系統的版本 即API大於10 就是3.0或以上版本
if(android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.GINGERBREAD_MR1){
Intent intent = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}else{
Intent intent = new Intent();
ComponentName component = new ComponentName("com.android.settings", "com.android.settings.WifiSettings");
intent.setComponent(component);
intent.setAction("android.intent.action.VIEW");
context.startActivity(intent);
}
}
/**
* 打開藍牙設置界面
* @param context
*/
public static void openBluetoothSetting(Context context){
//判斷手機系統的版本 即API大於10 就是3.0或以上版本
if(android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.GINGERBREAD_MR1){
Intent intent = new Intent(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}else{
Intent intent = new Intent();
ComponentName component = new ComponentName("com.android.settings", "com.android.settings.BluetoothSettings");
intent.setComponent(component);
intent.setAction("android.intent.action.VIEW");
context.startActivity(intent);
}
}
/**
* 打開關於界面
* @param context
*/
public static void openAboutSetting(Context context){
Intent intent = new Intent(android.provider.Settings.ACTION_DEVICE_INFO_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
/**
* 打開撥打電話界面
* @param context
*/
public static void openCall(Context context){
Intent intent = new Intent();
//系統默認的action,用來打開默認的電話界面
intent.setAction(Intent.ACTION_CALL);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//需要撥打的號碼
//intent.setData(Uri.parse("tel:"+telephone));
context.startActivity(intent);
}
/**
* 打開發送短信界面
* @param context
*/
public static void openSMS(Context context){
Intent intent = new Intent();
//系統默認的action,用來打開默認的電話界面
intent.setAction(Intent.ACTION_SENDTO);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//需要發短息的號碼
//intent.setData(Uri.parse("smsto:"+telephone));
context.startActivity(intent);
}
/**
* 打開電池狀態信息
* @param context
*/
public static void startBatteryStatus(Context context){
Intent intent = new Intent();
ComponentName cm = new ComponentName("com.android.settings", "com.android.settings.BatteryInfo");
intent.setComponent(cm);
intent.setAction("android.intent.action.VIEW");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
/**
* 打開一些設置
* @param context
* @param action
*/
public static void openToolsUI(Context context, String action){
Intent intent = new Intent();
ComponentName component = new ComponentName("com.android.settings", action);
intent.setComponent(component);
intent.setAction("android.intent.action.VIEW");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
/**
* 打開一些設置
* @param context
* @param action
*/
public static void openToolsUI2(Context context, String action){
Intent intent = new Intent(action);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
}
啓動第三方或系統的應用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.