下面列出了android.provider.Settings#ACTION_APPLICATION_DETAILS_SETTINGS 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* 打开应用设置界面
*
* @param requestCode 请求码
*
* @return
*/
private boolean openApplicationSettings(int requestCode) {
try {
Intent intent =
new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:" + mActivity.getPackageName()));
intent.addCategory(Intent.CATEGORY_DEFAULT);
// Android L 之后Activity的启动模式发生了一些变化
// 如果用了下面的 Intent.FLAG_ACTIVITY_NEW_TASK ,并且是 startActivityForResult
// 那么会在打开新的activity的时候就会立即回调 onActivityResult
// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mActivity.startActivityForResult(intent, requestCode);
return true;
} catch (Throwable e) {
Log.e(TAG, "", e);
}
return false;
}
/**
* 启动应用的设置
*
* @since 2.5.0
*
*/
private void startAppSettings() {
Intent intent = new Intent(
Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
}
/**
* アプリの詳細設定へ遷移させる(パーミッションを取得できなかった時など)
* @param context
*/
public static void openSettings(@NonNull final Context context) {
final Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
final Uri uri = Uri.fromParts("package", context.getPackageName(), null);
intent.setData(uri);
context.startActivity(intent);
}
/**
* 启动应用的设置
*
* @since 2.5.0
*/
private void startAppSettings() {
try{
Intent intent = new Intent(
Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
} catch (Throwable e) {
e.printStackTrace();
}
}
@Override
public void onClick(View view) {
Context context = view.getContext();
Intent myAppSettings = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.parse("package:" + context.getPackageName()));
myAppSettings.addCategory(Intent.CATEGORY_DEFAULT);
myAppSettings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myAppSettings);
}
public static void startApplicationDetailsSettings(Context context, String packageName) {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", packageName, null);
intent.setData(uri);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
final AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
.getMenuInfo();
final View itemView = info.targetView;
final LaunchableActivity launchableActivity =
(LaunchableActivity) itemView.findViewById(R.id.appIcon).getTag();
switch (item.getItemId()) {
case R.id.appmenu_launch:
launchActivity(launchableActivity);
return true;
case R.id.appmenu_info:
final Intent intent = new Intent(
Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:"
+ launchableActivity.getComponent().getPackageName()));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
return true;
case R.id.appmenu_onplaystore:
final Intent intentPlayStore = new Intent(Intent.ACTION_VIEW);
intentPlayStore.setData(Uri.parse("market://details?id=" +
launchableActivity.getComponent().getPackageName()));
startActivity(intentPlayStore);
return true;
case R.id.appmenu_pin_to_top:
launchableActivity.setPriority(launchableActivity.getPriority() == 0 ? 1 : 0);
mLaunchableActivityPrefs.writePreference(launchableActivity.getClassName(),
launchableActivity.getLaunchTime(), launchableActivity.getPriority(), launchableActivity.getusagesQuantity());
sortApps();
mArrayAdapter.notifyDataSetChanged();
return true;
default:
return false;
}
}
/**
* Open app settings screen
*/
private void openAppSettings() {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.fromParts("package", getPackageName(), null));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
private static Intent google(Context context) {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.fromParts("package", context.getPackageName(), null));
return intent;
}
public static Intent appDetailsSettings(Context context) {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:" + context.getPackageName()));
return intent;
}
/**
* 启动应用详情界面
* @param cxt 上下文
* @param packageName 应用包名
*/
public static void startMyApplicationDetailsForResult(Activity cxt, String packageName) {
Uri packageUri = Uri.parse("package:" + packageName);
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, packageUri);
cxt.startActivityForResult(intent, Code.REQUEST_SETTING_APP_DETAILS);
}
private static Intent defaultApi(Context context) {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.fromParts("package", context.getPackageName(), null));
return intent;
}
@OnClick(R.id.action_permission_settings)
public void onPermissionSettingsClicked() {
final Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.fromParts("package", getPackageName(), null));
startActivity(intent);
}
public void startAppSettings(Activity activity) {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse(PACKAGE_URL_SCHEME + activity.getPackageName()));
activity.startActivityForResult(intent, REQUEST_CODE_REQUEST_SETTING);
}
public boolean onPopupMenuItemClick(MenuItem item, int position) {
final ArrayList<DocumentInfo> docs = new ArrayList<>();
final Cursor cursor = mAdapter.getItem(position);
final DocumentInfo doc = DocumentInfo.fromDirectoryCursor(cursor);
docs.add(doc);
final int id = item.getItemId();
switch (id) {
case R.id.menu_share:
onShareDocuments(docs);
return true;
case R.id.menu_copy:
moveDocument(docs, false);
return true;
case R.id.menu_cut:
moveDocument(docs, true);
return true;
case R.id.menu_delete:
deleteDocument(docs, id);
return true;
case R.id.menu_stop:
stopDocument(docs, id);
return true;
case R.id.menu_save:
case R.id.menu_uncompress:
case R.id.menu_compress:
new OperationTask(docs, id).execute();
return true;
case R.id.menu_open:
openDocument(docs.get(0));
return true;
case R.id.menu_details:
Intent intent2 = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:"
+ AppsProvider.getPackageForDocId(docs.get(0).documentId)));
if(Utils.isIntentAvailable(getActivity(), intent2)) {
getActivity().startActivity(intent2);
}
Bundle params = new Bundle();
String type = IconUtils.getTypeNameFromMimeType(docs.get(0).mimeType);
params.putString(FILE_TYPE, type);
AnalyticsManager.logEvent("details", params);
return true;
case R.id.menu_info:
infoDocument(docs.get(0));
return true;
case R.id.menu_rename:
renameDocument(docs.get(0));
return true;
case R.id.menu_bookmark:
bookmarkDocument(docs.get(0));
return true;
default:
return false;
}
}
/**
* 启动当前应用设置页面
*/
public void startAppSettings() {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
}
public void openSettings(View view) {
Intent i = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", getPackageName(), null));
startActivity(i);
}
private void openSettings() {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", context.getPackageName(), null);
intent.setData(uri);
((Activity) context).startActivityForResult(intent, 101);
}
private static Intent google(Context context) {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.fromParts("package", context.getPackageName(), null));
return intent;
}
public void startAppSettings() {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
}