Android 开发中版本兼容性问题

一.应用的版本更新权限问题:

第一种写法:打开的的是包名的权限页面

Uri uri = Uri.parse("package:" + "包名");
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, uri);
startActivityForResult(intent, 100);

第二种写法:打开的所有应用的列表页面

Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
startActivityForResult(intent, 100);

二.拨打电话:

  Intent intent = new Intent(Intent.ACTION_CALL); //直接拨打电话
    Intent intent = new Intent(Intent.ACTION_DIAL);// 跳转到拨号界面
    Uri data = Uri.parse("tel:" + phoneNum);
    intent.setData(data);
    startActivity(intent);

三.外部存储路径

	 File file;
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) {
         file = getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS);
    } else {
        file = Environment.getExternalStorageDirectory();
    }

Android版本大于28以后,由于系统分区存储的变动,传统的方式获取的路径下,创建文件夹失败。

四.Android 12系统问题

当app版本设置compileSdkVersion=31的时候,在Android12的手机上运行失败,报错提示Installation via USB is disabled. 最后结果31改为其他版本。

五.Android 10

  • 随机分配 MAC 地址:
    • 获取随机分配的 MAC 地址:设备所有者应用和资料所有者应用可以通过调用 getRandomizedMacAddress() 检索分配给特定网络的随机分配 MAC 地址。
    • 获取实际的出厂 MAC 地址:设备所有者应用可以通过调用 getWifiMacAddress() 检索设备的实际硬件 MAC 地址。此方法对于跟踪设备队列非常有用。
  • 对 /proc/net 文件系统的访问权限实施了限制
    • 在搭载 Android 10 或更高版本的设备上,应用无法访问 /proc/net,其中包含与设备的网络状态相关的信息。需要访问这些信息的应用(如 VPN)应使用 NetworkStatsManager 或 ConnectivityManager 类。
    • 从 Android 10 开始,应用必须具有 READ_PRIVILEGED_PHONE_STATE 特许权限才能访问设备的不可重置标识符(包含 IMEI 和序列号)
  • 没有该权限,访问错误
    • 如果应用以 Android 10 或更高版本为目标平台,则会发生 SecurityException。
    • 如果应用以 Android 9(API 级别 28)或更低版本为目标平台,则相应方法会返回 null 或占位符数据(如果应用具有 READ_PHONE_STATE 权限)。否则,会发生 SecurityException。
  • 对启用和停用 WLAN 实施了限制
    • Android 10 或更高版本为目标平台的应用无法启用或停用 WLAN。WifiManager.setWifiEnabled() 方法始终返回 false。
    • 如果您需要提示用户启用或停用 WLAN,请使用设置面板。

六.Android 项目在运行在Android9.0上面的时候 闪退 报错如下:

	Java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/conn/scheme/SchemeRegistry;

解决办法:
1.如果使用了org.apache.http,在AndroidManifest.xml文件的application标签里面加入:

	<uses-library android:name="org.apache.http.legacy" android:required="false" />

猜你喜欢

转载自blog.csdn.net/u011174139/article/details/123815027