android - MIUI8短信權限問題
問題描述
MIUI8短信權限增加了普通短信權限和通知類短信權限,而且通知類短信權限默認給關閉了?有沒有相關的代碼去請求打開通知類短信權限?
問題解答
回答1:這種權限比較好的做法應該是做一個引導界面引導用戶手動開啟吧
回答2:如果應用自己可以更改自己的權限,那請問這個權限管理還有什么用?
回答3:我是通過將手機root之后進入權限管理xml表修改相應權限
回答4:package top.fengshiquan.online.util;
import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.util.Properties;
import android.content.ActivityNotFoundException;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.os.Build;import android.os.Environment;import android.provider.Settings;
public class MIUIUtils{
// 檢測MIUIprivate static final String KEY_MIUI_VERSION_CODE = 'ro.miui.ui.version.code';private static final String KEY_MIUI_VERSION_NAME = 'ro.miui.ui.version.name';private static final String KEY_MIUI_INTERNAL_STORAGE = 'ro.miui.internal.storage';/** * 檢查手機是否是miui * * @ref http://dev.xiaomi.com/doc/p=254/index.html * @return */public static boolean isMIUI(){ String device = Build.MANUFACTURER; System.out.println('Build.MANUFACTURER = ' + device); if (device.equals('Xiaomi')) {System.out.println('this is a xiaomi device');Properties prop = new Properties();try{ prop.load(new FileInputStream(new File(Environment .getRootDirectory(), 'build.prop')));} catch (IOException e){ e.printStackTrace(); return false;}return prop.getProperty(KEY_MIUI_VERSION_CODE, null) != null|| prop.getProperty(KEY_MIUI_VERSION_NAME, null) != null|| prop.getProperty(KEY_MIUI_INTERNAL_STORAGE, null) != null; } else {return false; }}/** * 跳轉到應用權限設置頁面 http://www.tuicool.com/articles/jUby6rA * * @param context * 傳入app 或者 activity * context,通過context獲取應用packegename,之后通過packegename跳轉制定應用 * @return 是否是miui */public static boolean gotoPermissionSettings(Context context){ boolean mark = isMIUI(); if (mark) {// 只兼容miui v5/v6 的應用權限設置頁面,否則的話跳轉應用設置頁面(權限設置上一級頁面)try{ Intent localIntent = new Intent( 'miui.intent.action.APP_PERM_EDITOR'); localIntent .setClassName('com.miui.securitycenter', 'com.miui.permcenter.permissions.AppPermissionsEditorActivity'); localIntent.putExtra('extra_pkgname', context.getPackageName()); context.startActivity(localIntent); } catch (ActivityNotFoundException e){ Intent intent = new Intent( Settings.ACTION_APPLICATION_DETAILS_SETTINGS); Uri uri = Uri.fromParts('package', context.getPackageName(), null); intent.setData(uri); context.startActivity(intent);} } return mark;}
}
相關文章:
1. javascript - node.js promise沒用2. golang - 用IDE看docker源碼時的小問題3. yii2中restful配置好后在nginx下報404錯誤4. 算法 - python 給定一個正整數a和一個包含任意個正整數的 列表 b,求所有<=a 的加法組合5. android 如何實現如圖中的鍵盤上的公式及edittext的內容展示呢6. java - 我在用Struts2上傳文件時,報以下錯誤怎么回事?7. c++ - 如何正確的使用QWebEngineView?8. PHP注冊功能9. mysql - 求SQL語句10. MySQL如何實現表中再嵌套一個表?
