0

我正在制作一个应用程序,其中包含可以在棉花糖前设备上执行的部分活动以及棉花糖及以上设备上的部分活动。所以我想要做的是不要让应用程序在运行棉花糖设备支持的活动的预棉花糖设备上崩溃,而只是显示您的设备不支持此模块访问的吐司。

在这里,我被卡在了指纹模块上,该模块使 pre marshmallow 设备上的应用程序崩溃。

 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {

//do something
}
else
showToastMessage();

错误

FATAL EXCEPTION: main
                java.lang.VerifyError: com/example/android/fingerprintdialog/MainActivity
                at java.lang.Class.newInstanceImpl(Native Method)
                at java.lang.Class.newInstance(Class.java:1130)
                at android.app.Instrumentation.newActivity(Instrumentation.java:1078)
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2210)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
                at android.app.ActivityThread.access$700(ActivityThread.java:159)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
                at android.os.Handler.dispatchMessage(Handler.java:99)
                at android.os.Looper.loop(Looper.java:176)
                at android.app.ActivityThread.main(ActivityThread.java:5419)
                at java.lang.reflect.Method.invokeNative(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:525)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
                at dalvik.system.NativeStart.main(Native Method)
4

3 回答 3

1

在我的应用程序中,我有一个需要运行时权限的下载按钮。

这就是我设法做到的方式:

public static int MY_PERMISSIONS_REQUEST_DOWNLOAD_IMAGE = 1;

btnDownLoad.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
                        urlFromDownload();
                        }
    });

public void urlFromDownload() {

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                if (ActivityCompat.checkSelfPermission(getActivity(),
                        Manifest.permission.WRITE_EXTERNAL_STORAGE)
                        != PackageManager.PERMISSION_GRANTED) {

                    requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                            MY_PERMISSIONS_REQUEST_DOWNLOAD_IMAGE);
                } else {

                    DowloadFileFromUrl downloadwall = new DowloadFileFromUrl();
                    if (downloadwall.getStatus() == AsyncTask.Status.RUNNING) {
                        // My AsyncTask has not started yet
                        Toast.makeText(getActivity(), "Please wait until download is complete", Toast.LENGTH_SHORT).show();
                    } else {
                        downloadwall.execute(imageUrl);
                    }

                }
            } else {

                DowloadFileFromUrl downloadwall = new DowloadFileFromUrl();
                if (downloadwall.getStatus() == AsyncTask.Status.RUNNING) {
                    // My AsyncTask has not started yet
                    Toast.makeText(getActivity(), "Please wait until download is complete", Toast.LENGTH_SHORT).show();
                } else {
                    downloadwall.execute(imageUrl);
                }

            }

        }

我希望你能理解我的代码。我所做的是两次编写我的下载代码。第一个用于棉花糖,第二个用于较低版本。

于 2016-09-27T08:03:28.793 回答
0

把它放在以下条件内
if (Build.VERSION.SDK_INT >= 23) { // Your code for } else { // Code for previous versions }

于 2016-09-27T07:39:56.570 回答
0

只需检查已安装的应用程序是否使用棉花糖或更高版本的 Android 操作系统。

if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M)
{
 // FingerPrint is supported by Android
  // Show the FingerPrint touch screen.
}
else
{
//FingerPrint is not supported by Android
//Don't show the FingerPrint touch screen.
}
于 2016-11-09T06:37:40.880 回答