精华内容
下载资源
问答
  • ATO版本上存在该问题,非ATO版本正常。 在Settings/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java下打印log,发现: @Override public boolean handlePreferenceTreeClick...

    ATO版本上存在该问题,非ATO版本正常。

     

    在Settings/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java下打印log,发现:

        @Override

        public boolean handlePreferenceTreeClick(Preference preference) {

            if (!TextUtils.equals(preference.getKey(), KEY_BUILD_NUMBER)) {

                return false;

            }

            if (Utils.isMonkeyRunning()) {

                return false;

            }

            // Don't enable developer options for secondary non-demo users.

            if (!(mUm.isAdminUser() || mUm.isDemoUser())) {

                mMetricsFeatureProvider.action(

                        mContext, MetricsEvent.ACTION_SETTINGS_BUILD_NUMBER_PREF);

                return false;

            }

     

            // Don't enable developer options until device has been provisioned

            if (!Utils.isDeviceProvisioned(mContext)) {

                mMetricsFeatureProvider.action(

                        mContext, MetricsEvent.ACTION_SETTINGS_BUILD_NUMBER_PREF);

                return false;

            }

    ......
    如注释:Don't enable developer options until device has been provisioned,是Utils.isDeviceProvisioned()的值为false, 才return,导致无法开启开发者选项。
    /frameworks/base/core/java/android/provider/Settings.java
        public static boolean isDeviceProvisioned(Context context) {
            return Settings.Global.getInt(context.getContentResolver(),
                    Settings.Global.DEVICE_PROVISIONED, 0) != 0;
        }
     
    即是Settings.Global.DEVICE_PROVISIONED的值存在问题。
    ATO版本      get device_provisioned 为 0,
    非ATO版本   get device_provisioned 为 1.
     
    查看device_provisioned 默认值,
    /frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
                loadBooleanSetting(stmt, Settings.Global.DEVICE_PROVISIONED,
                        R.bool.def_device_provisioned);
     
    frameworks/base/packages/SettingsProvider/res/values/defaults.xml
        <bool name="def_device_provisioned">false</bool>
     
    可知该值默认为false,即0
    搜全局看是哪个地方进行的修改.
     
    /packages/apps/Provision/src/com/android/provision/DefaultActivity.java
    /**
     * Application that sets the provisioned bit, like SetupWizard does.
     */
    public class DefaultActivity extends Activity {
     
        @Override
        protected void onCreate(Bundle icicle) {
            super.onCreate(icicle);
     
            // Add a persistent setting to allow other apps to know the device has been provisioned.
            Settings.Global.putInt(getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 1);
            Settings.Secure.putInt(getContentResolver(), Settings.Secure.USER_SETUP_COMPLETE, 1);
     
            // remove this activity from the package manager.
            PackageManager pm = getPackageManager();
            ComponentName name = new ComponentName(this, DefaultActivity.class);
            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                    PackageManager.DONT_KILL_APP);
     
            // terminate the activity.
            finish();
        }
    }
     
    Provision这个APK,可能很多人都不知道有这个APK存在。Provision的作用很简单,就是一个系统初始化引导程序,原生的Android里面Provision只做了一件事,就是写入一个DEVICE_PROVISIONED标记。不过这个标记作用很大,这个标记只会在系统全新升级(双清)的时候写入一次,代表了Android系统升级准备完成,可以正常工作。
     
    从这可以看出,是因为ATO版本没有系统初始化引导程序导致的,我们知道,无论是客制化的SetupWizard还是Google的SetupWizard, 都会在Android.mk文件中声明去覆盖此apk。在自己的apk中也会进行写入一个DEVICE_PROVISIONED标记的动作。
    查看客制化的SetupWizard Android.mk文件可发现,存在:
    LOCAL_OVERRIDES_PACKAGES := Provision
     
    因为在ATO版本时不编译SetupWizard,而LOCAL_OVERRIDES_PACKAGES后,Provision也不会生效,才导致此值未被写入,故注释掉这条即可。

     

    展开全文
  • 不管哪一款Android 设备都会在设置中显示关于手机一栏,基本上大同小异,手机名称啊,型号啊,版本号啊手机内存机身存储等等,以下是简单的记录下: 1.Activity: package activity; import android.app....

    不管哪一款Android 设备都会在设置中显示关于手机一栏,基本上大同小异,手机名称啊,型号啊,版本号啊手机内存机身存储等等,以下是简单的记录下:

    1.Activity:

    package activity;
    
    import android.app.ActivityManager;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Environment;
    import android.os.StatFs;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.text.format.Formatter;
    import android.view.View;
    import android.widget.ImageView;
    import android.widget.ListView;
    import android.widget.TextView;
    
    import com.vstar3d.myapplication.R;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.List;
    
    import adapter.Setting_AboutPhoneAdapter;
    
    public class Setting_AboutPhoneActivity extends AppCompatActivity {
        private TextView mImageView;
        private ListView listView;
        private Setting_AboutPhoneAdapter adapter;
        private List<String> list;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main4);
            initView();
            initDate();
            getDate();
        }
    
        private void initDate() {
            list = new ArrayList<String>();
            adapter = new Setting_AboutPhoneAdapter(list, this);
        }
    
        private void initView() {
            mImageView = (TextView) findViewById(R.id.image);
            mImageView.setText("基于Adnroid"+android.os.Build.VERSION.RELEASE+"开发");
            listView = (ListView) findViewById(R.id.listView);
        }
    
        public void getDate() {
            String name = "手机名称\n" + android.os.Build.PRODUCT;
            String model = "型号\n" + android.os.Build.MODEL;
            String version = "Android版本\n" + android.os.Build.VERSION.RELEASE;
            String cpu = "处理器\n" + android.os.Build.CPU_ABI2;
            String phonememory = "手机内存\n" + "手机总内存: " + this.getTotalMemory() + ", " + "可用内存: " + this.getAvailMemory();
            String sdmemory = "机身存储\n" + "SD卡总内存: " + this.getSDAllSize() + "GB" + ", " + "可用内存: " + this.getSDFreeSize() + "GB";
            String display = "版本号\n" + android.os.Build.DISPLAY;
            String result1 = "基带版本\n" + getBaseband_Ver();
            String kernel = "内核版本\n" + getKernelVersion();
            String inner = "内部版本\n" + getInner_Ver();
    
            list.add(name);
            list.add(model);
            list.add(version);
            list.add(cpu);
            list.add(phonememory);
            list.add(sdmemory);
            list.add(result1);
            list.add(kernel);
            list.add(inner);
            list.add(display);
            listView.setAdapter(adapter);
        }
    
        /*手机可用内存*/
        private String getAvailMemory() {
    
            ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
            ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
            am.getMemoryInfo(mi);
            return Formatter.formatFileSize(getBaseContext(), mi.availMem);
    
        }
        /*手机总内存*/
        private String getTotalMemory() {
            String str1 = "/proc/meminfo";
            String str2;
            String[] arrayOfString;
            long initial_memory = 0;
            try {
                FileReader localFileReader = new FileReader(str1);
                BufferedReader localBufferedReader = new BufferedReader(localFileReader, 8192);
                str2 = localBufferedReader.readLine();
                arrayOfString = str2.split("\\s+");
                initial_memory = Long.parseLong(arrayOfString[1]) * 1024;
                localBufferedReader.close();
            } catch (IOException e) {
            }
            return Formatter.formatFileSize(getBaseContext(), initial_memory);
        }
    
        /*SD卡总内存*/
        public float getSDAllSize() {
            File path = Environment.getExternalStorageDirectory();
            StatFs sf = new StatFs(path.getPath());
            long blockSize = sf.getBlockSize();
            long allBlocks = sf.getBlockCount();
            return (allBlocks * blockSize) / 1024 / 1024 / 1024; //单位MB
    
        }
    
        /*SD卡可用内存*/
        public float getSDFreeSize() {
            File path = Environment.getExternalStorageDirectory();
            StatFs sf = new StatFs(path.getPath());
            long blockSize = sf.getBlockSize();
            long freeBlocks = sf.getAvailableBlocks();
            return (freeBlocks * blockSize) / 1024 / 1024 / 1024; //单位MB
        }
    
        /*基带版本*/
        public static String getBaseband_Ver() {
            String Version = "";
            try {
                Class cl = Class.forName("android.os.SystemProperties");
                Object invoker = cl.newInstance();
                Method m = cl.getMethod("get", new Class[]{String.class, String.class});
                Object result = m.invoke(invoker, new Object[]{"gsm.version.baseband", "no message"});
                Version = (String) result;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return Version;
        }
    
        /*内部版本*/
        public static String getInner_Ver() {
            String ver = "";
    
            if (android.os.Build.DISPLAY.contains(android.os.Build.VERSION.INCREMENTAL)) {
                ver = android.os.Build.DISPLAY;
            } else {
                ver = android.os.Build.VERSION.INCREMENTAL;
            }
            return ver;
    
        }
    
        /*内核版本*/
        public static String getKernelVersion() {
            String kernelVersion = "";
            InputStream inputStream = null;
            try {
                inputStream = new FileInputStream("/proc/version");
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                return kernelVersion;
            }
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream), 8 * 1024);
            String info = "";
            String line = "";
            try {
                while ((line = bufferedReader.readLine()) != null) {
                    info += line;
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    bufferedReader.close();
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
            try {
                if (info != "") {
                    final String keyword = "version ";
                    int index = info.indexOf(keyword);
                    line = info.substring(index + keyword.length());
                    index = line.indexOf(" ");
                    kernelVersion = line.substring(0, index);
                }
            } catch (IndexOutOfBoundsException e) {
                e.printStackTrace();
            }
    
            return kernelVersion;
        }
    
    }

    2.Adapter:

    package adapter;
    
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.TextView;
    import com.vstar3d.myapplication.R;
    import java.util.List;
    
    public class Setting_AboutPhoneAdapter extends BaseAdapter {
        private List<String> itemDetailed;
        private Context context;
    
        public Setting_AboutPhoneAdapter(List<String> itemDetailed, Context context) {
            this.itemDetailed = itemDetailed;
            this.context = context;
        }
    
        @Override
        public int getCount() {
            return itemDetailed.size();
        }
    
        @Override
        public Object getItem(int position) {
            return null;
        }
    
        @Override
        public long getItemId(int position) {
            return 0;
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder viewHolder;
            if (convertView == null){
                convertView = LayoutInflater.from(context).inflate(R.layout.item,null);
                viewHolder = new ViewHolder();
                viewHolder.text_detailed = (TextView) convertView.findViewById(R.id.text_detailed);
                convertView.setTag(viewHolder);
            }else {
                viewHolder = (ViewHolder) convertView.getTag();
            }
            String stringTitle = itemDetailed.get(position);
            viewHolder.text_detailed.setText(stringTitle);
            return convertView;
        }
        class ViewHolder{
            TextView text_detailed;
        }
    

    3.布局文件:main

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="com.vstar3d.myapplication.Main3Activity">
    
        <TextView
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="20dp"
            android:drawableTop="@mipmap/about"
            android:onClick="onClick" />
    
        <View
            android:layout_width="wrap_content"
            android:layout_height="1dp"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:background="#ff211323" />
    
        <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"></ListView>
    
    </LinearLayout>
    

    item:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
    
        <TextView
            android:padding="3dp"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:id="@+id/text_detailed"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>


    至于还有一些法律信息等等信息加进去就行。



    展开全文
  • 怎么查询华为手机版本号

    千次阅读 2020-10-22 19:52:27
    今天刷机天堂小编就给大家分享一下,在手机无法开机进入到系统设置关于手机里查看型号及版本号的时候,如何来确定当前的手机系统版本。 方法一:适合9.0以下的版本; 手机开机到语言选择界面→紧急拨号,然后在...

    我们知道,在对华为手机刷机前需要对当前的手机型号及系统版本确认后,方可刷入对应版本的底包。很多机友虽能确定自己的华为手机型号,可是对于当前的系统版本不太清楚。
    在这里插入图片描述

    今天刷机天堂小编就给大家分享一下,在手机无法开机进入到系统设置–关于手机里查看型号及版本号的时候,如何来确定当前的手机系统版本。

    方法一:适合9.0以下的版本;

    手机开机到语言选择界面→紧急拨号,然后在拨号界面输入 ##0000## 会弹出【关于手机】,在里面可以看到手机的型号及版本号。如下图所示
    在这里插入图片描述

    如上图所示为:P20Pro (内部代号CLT-AL00)系统版本为:8.1.0.176

    方法二:适合9.0以上的版本

    重启手机,在语言选择界面→紧急拨号界面输入 ##1357946## ,屏幕左边框边缘处按住,往右拉可以调出菜单栏,查看【关于手机】里面的型号和版本号;

    方法三:fastboot模式读版本(若方法1和方法2读版本都显示已锁定,则需要此方法读)

    ①将华为手机关机黑屏状态,先按住【音量减】键不松开,再数据线连接电脑,待手机进入fastboot模式(出现一个安卓机器人界面)就可以松开音量减键;
    在这里插入图片描述

    ②电脑上,下载【华为读取版本.exe】,然后双击打开(破解类程序,容易被杀毒软件误报,请允许运行,或是先退出杀毒软件,再打开软件)

    在这里插入图片描述

    如上图所示为:P30Pro手机(内部代号VOG-AL00),系统版本为:9.1.0.162

    注:若无法显示,则说明您电脑上未安装fastboot 驱动,可以下载:通用驱动安装

    展开全文
  • 怎样查看Android手机系统版本号?_百度知道 1个回答 - 提问时间: 2011年12月10日 最佳答案: 设置——关于手机——android版本


    怎样查看Android手机系统版本号?_百度知道
    1个回答 - 提问时间: 2011年12月10日
    最佳答案: 设置——关于手机——android版本
    展开全文
  • 在文件 packages/apps/Settings/src/... setStringSummary("build_number", Build.DISPLAY); 指定了设置--关于设备--版本号。 Build.DISPLAY即Build类中的 DISPLAY 变量,在文件f...
  • 进入手机设置选项在设置中的最后一项就是关于手机了 首先可以看到手机状态法律信息系统向导型号固件版本等等信息进入状态可以看到手机正在充电电池电量也有精确的显示还有网络信息等 再向下滑动可以看到手机串号IMEI...
  • 一、关于手机 - 版本号按7次 - 打开开发者模式 二、USB设置连接 三、USB传输文件 四、USB检测连接 五、hdb容许连接 六、显示时间30min 电脑端命令 adb devices 七、手机端 确定 八、电脑端 scrcpy 在电脑上看手机...
  • 通用设置 情景1 开发者选项已经激活,并且在设置列表中能看到 ...打开手机设置--关于手机,连续点击版本号(或内部版本号,各种机型的叫法不太一样,不过大至相同)连续点5次激活开发者模式。 或者打开“设置...
  • 在frameworks/base/core/java/android/os/Build.java中定义了class Build类,这个类定义了所有关于产品的参数,例如固件版本号,product 名字,板子名字等等,有些参数会在设置->关于手机中显示。 public class ...
  • 关于手机打开开发者方式的方法

    千次阅读 2017-12-15 09:53:17
    整理不同手机打开开发者模式的方法: 魅族手机 Pro6S : 设置——关于——版本号连续点七次 三星s8 :设置 ----> 关于手机-----> 软件信息---->版本号...oppo R11s 手机 : 设置-----> 关于手机----->版本号,连续
  • 卡顿是安卓手机不可避免的,但我们可以通过开启一些设置和良好的操作习惯,来延缓卡顿来临的时间,手机最好是设置这几个功能,能...操作方法:设置—系统—关于手机—点击7下版本号—回到系统,就会发现多出一个开发...
  • 小米2s手机刷机开发版本

    千次阅读 2018-01-15 20:16:45
    设置->关于手机->连点三下MIUI版本,即开启了开发者选项 设置->更多设置->开发者选项 由于小米2没有(设置 -> 开发者选项 -> 设备解锁状态)这个位置,所以可以省了这一步 刷机需要注意 1.要注册账号,申请解锁,...
  • "关于手机"点击版本号7次,之后返回“系统”,就会出现“开发人员选项”如下图 第三步:进入“开发人员选项” 之后再去uin-app开发软件查看,就可以真机调试了 点击之后,首次会安装,所以要等待几...
  • android 8.0系统版本号修改

    千次阅读 2018-05-19 14:30:28
    关于CTA版本的系统属性修改的两个任务,记录下来,仅供android 初级水平参考1、将设置-》关于手机-》版本号中的日期从"20180102Q_v1.0"修改为"20180206Q_v1.0"以保证和该页面中的版本号匹配。...
  • android studio是第一次使用,很多使用细则不太了解,今天先写虚拟手机与真机的设置,以后再陆续补充 虚拟手机设置 Tools ->android->AVD ...设置->关于手机->软件信息->点击版本号5次就会出现“开发者模式”,
  • "关于手机"点击版本号7次,之后返回“系统”,就会出现“开发人员选项”如下图 第三步:进入“开发人员选项” 之后再去uin-app开发软件查看,就可以真机调试了 点击之后,首次会安装,...
  • 1、手机的设备管理器在哪 设置-安全-更多安全设置-设备管理器 2、手机24小时蓝牙,NFC开启会更加耗电吗 24小时全天开启蓝牙、NFC,结果发现,蓝牙的耗电量还不到0.01%,NFC也...关于手机-版本号连击7次 ...
  • 第二步:关于手机->版本号,点击版本号会弹出提示:已经处于开发者模式,无需操作 第三步:设置->在搜索框中输入HDB,此时会弹出高级设置:允许 HiSuite 通过HDB连接设备,撤销HiSuite 的HDB 连接授权,选择 ...
  • Android 4.2以上的手机USB调试设置

    千次阅读 2013-10-09 13:01:47
    今天遇到一个问题,我手上有两部手机一部是红米、一部是中兴的青漾QY N986,两部手机的Android系统都是4.2.1的,连接到...进入设置--->关于手机--->版本号--->单击七次(出现提示“您现在处于开发者模式”)--->返回设置
  • 数据线连接到电脑后,找到手机设置,找到关于手机的信息; 这是我手机型号截图↑ 反复点击版本号,我的手机会弹出让我输入手机密码验证是否为本人操作; 输入密码后就会有一闪而过提示开启开发者选项; 再次进行...
  • 关于手机安全卫士开发详解

    千次阅读 2016-11-07 20:45:06
    界面的ui主要完成的是背景图片的显示,以及版本号的显示,其中版本号是需要动态获取显示的。 主要实现:由于布局的特点选择相对布局,在RelativeLayout中设置背景图片,用一个textview显示版本信息。   1.2 界面...
  • 随着华为手机越做越好,生活中使用华为手机的人也越来越多了。而且华为手机中还隐藏中很多黑科技功能。...设置关于手机→点击七次版本号→然后再返回上一界面→选择系统与更新→进入后就能看到开发人员...
  • 具体步骤:设置→更多设置关于手机→进入安卓系统界面→快速点击三次软件版本号→打开开发者模式<外补:快速点击三次Android版本进入彩蛋???>→打开OTG→打开开发者选项→打开USB调试 最后:将USB接上...
  • 修改Android系统的软件版本号

    万次阅读 2018-04-24 20:08:45
    在Android系统中有几个版本号经常遇到,有时还要做特殊处理。下面整理一下,这些都保留在文件系统的/system/build.prop文件里,...系统设置--关于手机--版本号1、在系统设置代码中搜索“版本号”,AndroidStudio中全...
  • 电脑通过豌豆荚连接手机或者平板不...2、点击关于手机; 3、连续点击七次版本号; 4、再返回设置菜单界面选择开发者者选项; 5、点击打开右上角的开关,即可打开 USB调试模式; 6、打开USB调试模式后,下拉手机...
  • 系统设置--关于手机--版本号:ro.build.display.id; custom version:ro.hz.internal.version; 源码修改分别如下: diff --git a/FFTools/mkupdate/mkupdate.sh b/FFTools/mkupdate/mkupdate.sh ...
  • 华为手机如何进行ADB调试

    千次阅读 2020-04-10 22:45:49
    设置关于手机版本号,连续点击。打开开发者模式。 系统和更新,开发人员选项。开发人员选项,开;USB调试,开。 打开端口。具体参考: https://blog.csdn.net/quantum7/article/details/79824640 ...
  • 1. 问题 豌豆荚不能连接三星S4手机,下载了...应用程序-》设定-》更多-》关于设备-》内部版本号,在这个上面连续点击多次,然后会警告你将启用开发者模式,再点确认为止; 返回到“更多”界面,在“关于设备”功能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 592
精华内容 236
关键字:

手机设置关于手机版本号