精华内容
下载资源
问答
  • 如今科技日新月异,而手机系统也是一样的,现在的手机系统更新的速度特别快,不管是苹果手机还是安卓手机,在系统大更新时,还没有几天就能收到手机提示的系统更新,但手机更新到最新的系统真的好吗?更新后又会出现...

    如今科技日新月异,而手机系统也是一样的,现在的手机系统更新的速度特别快,不管是苹果手机还是安卓手机,在系统大更新时,还没有几天就能收到手机提示的系统更新,但手机更新到最新的系统真的好吗?更新后又会出现什么新问题呢?下面笔者就说说手机该不该升级到最新的系统。

    03438c6cf3424c452ee589c8f707f51b.png

    升级系统的优点

    1. 修复BUG

    科技是不断发展的,可能系统在当时没有漏洞,但随着时间的推移,网络上出现了新的病毒,或者底层系统被人发现了漏洞,手机厂商为了用户信息的安全,就会推送系统升级提示。

    01856347242c68d05888a6e8fc9bc9b1.png
    1. 新增功能

    随着用户需求的增多,手机厂商也会在系统中新增一些功能满足用户的需求,也是为了用户能有更好的体验感,这也是最常见的更新情况。

    ceb39184169e931bd3a236b00799bfb8.png
    1. 体验最新技术

    安卓和IOS系统每年都会有一次大更新,每次大更新都有很多新技术,并且还会增加很多新功能,而升级后也会变的流畅。

    89c106d8d86cc67dd23f39b92a50277e.png

    升级系统的缺点

    1. 掉电更快

    系统再升级后,硬件和软件要重新磨合,所以在升级新系统后的几天,掉电会比之前快很多。

    e6ad1118180c4cac6287d5c93b7a4fee.png
    1. 软件不兼容

    一般的小更新不会出现这种情况,但是每次更新系统底层后,就会有很多应用不兼容,出现卡顿、闪退的情况,一般将应用更新到最新版本就能解决。

    58337856dc5b70a63149dbd59be213a8.png
    1. 卡顿

    正常情况下手机越升级越流畅,但是现在升级越来越频繁,对手机硬件的要求越来越高,旗舰机型升级会越来越好用,但千元机或者老旧机型由于硬件的不足,越更新就会越卡顿。

    fc4afa6555e3f8458d61f5f720ce6de8.png

    笔者观点:

    如果想3年以上不换手机,建议减少更新次数,而对于一两年就想换手机的朋友,有升级就可以点,新技术才有更好的体验感。并且在升级前记得备份哦,避免意外升级失败而造成数据丢失。

    4b9cc18c955e980f8ca6c8f492a99991.png

    以上就是笔者分享的内容了,看完后想必大家都知道自己的手机该不该升级了吧,如果还有其他关于手机操作的问题也可以问笔者哦,笔者知无不答。

    展开全文
  • 一款iPhone基本上5年之内都能获得苹果推送的最新版iOS系统这个特性让iPhone的平均使用寿命要大幅领先于安卓手机。果粉往往嘲笑安卓用户,你们的手机再好有什么用?买来用个两年厂商就不给升级了,要么就忍受旧...

    对于安卓手机好还是苹果iPhone好这个问题,网友们的争论已经有好几年了,并且争论的焦点也涉及到方方面面。而果粉这边其中有一个常挂在嘴边的优点,那就是iPhone的软件更新周期长。一款iPhone基本上5年之内都能获得苹果推送的最新版iOS系统

    这个特性让iPhone的平均使用寿命要大幅领先于安卓手机。果粉往往嘲笑安卓用户,你们的手机再好有什么用?买来用个两年厂商就不给升级了,要么就忍受旧版系统,要么就只能再买新机。

    b62de9597649e3f5ce0c49a4d866adaa.png

    事实上这些果粉说的的确没错,iPhone公认的两大优势就是使用寿命长和保值度高。后者现在已经慢慢没落,但前者依然是不变的真理。那么,反观安卓这边,一款手机的软件寿命就真的只有2年左右时间吗?其实我们也要看到,这些年国产手机厂商对于老机型

    的维护时间已经有所增加了,特别是像华为小米这样的大厂,高端一点的机型维护时间一般在3年左右,还是很不错的。而对于更老的机型,厂商也都会给出理由,表示硬件不行了

    a789782c830ed07cc04a1e418f74f4a2.png

    所以不给升级。大多数机友也都会表示理解。但是,小智要说但是了,旧版安卓手机真的是因为硬件不足而无法升级最新的安卓系统吗?很明显不是。近日一款发布于2014年的安卓老爷机获得了第三方开发的安卓10系统更新,它就是一加手机1代。

    该机的配置现在看来堪称“远古”,搭载5.5寸1080P屏幕,骁龙801处理器,3G+16G内存,后置1300万单摄。但就是这样的硬件配置,照样能够全量升级到安卓10系统。

    8bca7864ed91a90f88abd71114d6db0e.png

    这还是第三方开发团队做的,这说明硬件压根就不是升级系统的阻碍,安卓手机也可以和iPhone一样,拥有比现在更长的使用寿命。厂商所说的硬件不行了,实际上只是一种变相劝你换新机的方式。小智认为,国产厂商应该向苹果学习,不说为所有机型长期维护,但是那些昂贵的旗舰机型,至少要做到和iPhone的使用寿命一样才对得起用户!

    展开全文
  • 由于调用系统默认浏览器下载更新,造成用户体验非常不好,所以决定在webview中直接下载系统更新。然后直接安装。 由于要下载,所以必须用webview,联网权限这里不说了,直接写在manifafest中。 我们经常使用的...

    由于调用系统默认浏览器下载更新,造成用户体验非常不好,所以决定在webview中直接下载系统更新。然后直接安装。

    由于要下载,所以必须用webview,联网权限这里不说了,直接写在manifafest中。

    我们经常使用的下载都是调用Android默认浏览器 这样写


     1、设置WebView的DownloadListener:

        webView.setDownloadListener(new MyWebViewDownLoadListener());

        2、实现MyWebViewDownLoadListener这个类,详细能够例如以下这样:    

    [java] view plaincopy
    1. private class MyWebViewDownLoadListener implements DownloadListener {  
    2.   
    3.         @Override  
    4.         public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype,  
    5.                                     long contentLength) {  
    6.             Uri uri = Uri.parse(url);  
    7.             Intent intent = new Intent(Intent.ACTION_VIEW, uri);  
    8.             startActivity(intent);  
    9.         }  
    10.   
    11.     }  


    为了直接下载,

    Sample:

    java代码:

      

    public class zwebxiazai extends Activity {
       
     WebView webView;
       
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            this.webView=(WebView) this.findViewById(R.id.webview);
            this.webView.getSettings().setSupportZoom(false);
            this.webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
            this.webView.loadUrl("http://a.zntx.cc/");
            this.webView.setWebViewClient(new WebViewClientDemo());
            webView.setDownloadListener(new DownloadListener() {
                public void onDownloadStart(String url, String userAgent,
                                String contentDisposition, String mimetype,
                                long contentLength) {
                        //实现下载的代码
                                              Uri uri = Uri.parse(url);
               Intent intent = new Intent(Intent.ACTION_VIEW,uri);
                        startActivity(intent);
                }
        });


        }
      private class WebViewClientDemo extends WebViewClient {
        @Override
        // 在WebView中而不是默认浏览器中显示页面
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
         view.loadUrl(url);
          return true;
         }

         

        }
      }

     


    main.xml代码:

    <?

    xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello"
        />
    <WebView android:id="@+id/webview" android:layout_width="fill_parent"
        android:layout_height="0dip" android:layout_weight="1" />


    </LinearLayout>

    在AndroidManifest.xml中增加訪问internet的权限:

    <uses-permission android:name="android.permission.INTERNET"></uses-permission>


    Sample2   这个比較具体  

    WebView控制调用对应的WEB页面进行展示。当碰到页面有下载链接的时候,点击上去是一点反应都没有的。

    原来是由于WebView默认没有开启文件下载的功能。假设要实现文件下载的功能。须要设置WebView的DownloadListener,通过实现自己的DownloadListener来实现文件的下载。详细操作例如以下: 

    1、设置WebView的DownloadListener: 
        webView.setDownloadListener(new MyWebViewDownLoadListener()); 

    2、实现MyWebViewDownLoadListener这个类,详细能够例如以下这样:  

    Java代码 复制代码 收藏代码
    1. private class MyWebViewDownLoadListener implements DownloadListener{   
    2.   
    3.         @Override  
    4.         public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype,   
    5.                                     long contentLength) {              
    6.             Log.i("tag""url="+url);              
    7.             Log.i("tag""userAgent="+userAgent);   
    8.             Log.i("tag""contentDisposition="+contentDisposition);            
    9.             Log.i("tag""mimetype="+mimetype);   
    10.             Log.i("tag""contentLength="+contentLength);   
    11.             Uri uri = Uri.parse(url);   
    12.             Intent intent = new Intent(Intent.ACTION_VIEW, uri);   
    13.             startActivity(intent);              
    14.         }   
    15.     }  
    [java] view plaincopy
    1. private class MyWebViewDownLoadListener implements DownloadListener{  
    2.   
    3.         @Override  
    4.         public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype,  
    5.                                     long contentLength) {             
    6.             Log.i("tag""url="+url);             
    7.             Log.i("tag""userAgent="+userAgent);  
    8.             Log.i("tag""contentDisposition="+contentDisposition);           
    9.             Log.i("tag""mimetype="+mimetype);  
    10.             Log.i("tag""contentLength="+contentLength);  
    11.             Uri uri = Uri.parse(url);  
    12.             Intent intent = new Intent(Intent.ACTION_VIEW, uri);  
    13.             startActivity(intent);             
    14.         }  
    15.     }  

      这仅仅是调用系统中已经内置的浏览器进行下载,还没有WebView本身进行的文件下载。只是,这也基本上满足我们的应用场景了。 

    我在项目中的运用 
    项目要求这样: 
    1,须要使用WebView载入一个网页。 
    2。网页中有文件下载的链接,点击后须要下载文件到SDcard; 
    3。然后自己主动打开文件; 
    以下是详细解决的方法 
    第一步。对WebView进行一系列设置。 

    Java代码 复制代码 收藏代码
    1. WebView webview=(WebView)layout.findViewById(R.id.webview);   
    2.                 webview.getSettings().setJavaScriptEnabled(true);   
    3.                 webview.setWebChromeClient(new MyWebChromeClient());   
    4.                 webview.requestFocus();   
    5. //              webview.loadUrl("file:///android_asset/risktest.html");   
    6.                 webview.loadUrl(jcrs_sub.get(position).addr);   
    7.                 // 设置web视图client   
    8.                 webview.setWebViewClient(new MyWebViewClient());   
    9.                 webview.setDownloadListener(new MyWebViewDownLoadListener());   
    10.   
    11. //内部类   
    12. public class MyWebViewClient extends WebViewClient {   
    13.         // 假设页面中链接,假设希望点击链接继续在当前browser中响应,   
    14.         // 而不是新开Android的系统browser中响应该链接,必须覆盖 webview的WebViewClient对象。   
    15.         public boolean shouldOverviewUrlLoading(WebView view, String url) {   
    16.             L.i("shouldOverviewUrlLoading");   
    17.             view.loadUrl(url);   
    18.             return true;   
    19.         }   
    20.   
    21.         public void onPageStarted(WebView view, String url, Bitmap favicon) {   
    22.             L.i("onPageStarted");   
    23.             showProgress();   
    24.         }   
    25.   
    26.         public void onPageFinished(WebView view, String url) {   
    27.             L.i("onPageFinished");   
    28.             closeProgress();   
    29.         }   
    30.   
    31.         public void onReceivedError(WebView view, int errorCode,   
    32.                 String description, String failingUrl) {   
    33.             L.i("onReceivedError");   
    34.             closeProgress();   
    35.         }   
    36.     }   
    37.   
    38. // 假设不做不论什么处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身。   
    39.     // 假设希望浏览的网 页回退而不是推出浏览器,须要在当前Activity中处理并消费掉该Back事件。   
    40.     public boolean onKeyDown(int keyCode, KeyEvent event) {   
    41.         // if((keyCode==KeyEvent.KEYCODE_BACK)&&webview.canGoBack()){   
    42.         // webview.goBack();   
    43.         // return true;   
    44.         // }   
    45.         return false;   
    46.     }  
    [java] view plaincopy
    1. WebView webview=(WebView)layout.findViewById(R.id.webview);  
    2.                 webview.getSettings().setJavaScriptEnabled(true);  
    3.                 webview.setWebChromeClient(new MyWebChromeClient());  
    4.                 webview.requestFocus();  
    5. //              webview.loadUrl("file:///android_asset/risktest.html");  
    6.                 webview.loadUrl(jcrs_sub.get(position).addr);  
    7.                 // 设置web视图client  
    8.                 webview.setWebViewClient(new MyWebViewClient());  
    9.                 webview.setDownloadListener(new MyWebViewDownLoadListener());  
    10.   
    11. //内部类  
    12. public class MyWebViewClient extends WebViewClient {  
    13.         // 假设页面中链接,假设希望点击链接继续在当前browser中响应。  
    14.         // 而不是新开Android的系统browser中响应该链接。必须覆盖 webview的WebViewClient对象。  
    15.         public boolean shouldOverviewUrlLoading(WebView view, String url) {  
    16.             L.i("shouldOverviewUrlLoading");  
    17.             view.loadUrl(url);  
    18.             return true;  
    19.         }  
    20.   
    21.         public void onPageStarted(WebView view, String url, Bitmap favicon) {  
    22.             L.i("onPageStarted");  
    23.             showProgress();  
    24.         }  
    25.   
    26.         public void onPageFinished(WebView view, String url) {  
    27.             L.i("onPageFinished");  
    28.             closeProgress();  
    29.         }  
    30.   
    31.         public void onReceivedError(WebView view, int errorCode,  
    32.                 String description, String failingUrl) {  
    33.             L.i("onReceivedError");  
    34.             closeProgress();  
    35.         }  
    36.     }  
    37.   
    38. // 假设不做不论什么处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身。  
    39.     // 假设希望浏览的网 页回退而不是推出浏览器,须要在当前Activity中处理并消费掉该Back事件。  
    40.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
    41.         // if((keyCode==KeyEvent.KEYCODE_BACK)&&webview.canGoBack()){  
    42.         // webview.goBack();  
    43.         // return true;  
    44.         // }  
    45.         return false;  
    46.     }  


    第二步。起线程開始下载文件。 
    Java代码 复制代码 收藏代码
    1. //内部类   
    2. private class MyWebViewDownLoadListener implements DownloadListener {   
    3.   
    4.         @Override  
    5.         public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype,   
    6.                                     long contentLength) {   
    7.             if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){   
    8.                 Toast t=Toast.makeText(mContext, "须要SD卡。", Toast.LENGTH_LONG);   
    9.                 t.setGravity(Gravity.CENTER, 00);   
    10.                 t.show();   
    11.                 return;   
    12.             }   
    13.             DownloaderTask task=new DownloaderTask();   
    14.             task.execute(url);   
    15.         }   
    16.   
    17.     }   
    18.     //内部类   
    19.     private class DownloaderTask extends AsyncTask<String, Void, String> {    
    20.   
    21.         public DownloaderTask() {    
    22.         }   
    23.   
    24.         @Override  
    25.         protected String doInBackground(String... params) {   
    26.             // TODO Auto-generated method stub   
    27.             String url=params[0];   
    28. //          Log.i("tag", "url="+url);   
    29.             String fileName=url.substring(url.lastIndexOf("/")+1);   
    30.             fileName=URLDecoder.decode(fileName);   
    31.             Log.i("tag""fileName="+fileName);   
    32.                
    33.             File directory=Environment.getExternalStorageDirectory();   
    34.             File file=new File(directory,fileName);   
    35.             if(file.exists()){   
    36.                 Log.i("tag""The file has already exists.");   
    37.                 return fileName;   
    38.             }   
    39.             try {     
    40.                 HttpClient client = new DefaultHttpClient();     
    41. //                client.getParams().setIntParameter("http.socket.timeout",3000);//设置超时  
    42.                 HttpGet get = new HttpGet(url);     
    43.                 HttpResponse response = client.execute(get);   
    44.                 if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){   
    45.                     HttpEntity entity = response.getEntity();   
    46.                     InputStream input = entity.getContent();   
    47.                        
    48.                     writeToSDCard(fileName,input);   
    49.                        
    50.                     input.close();   
    51. //                  entity.consumeContent();   
    52.                     return fileName;     
    53.                 }else{   
    54.                     return null;   
    55.                 }   
    56.             } catch (Exception e) {     
    57.                 e.printStackTrace();   
    58.                 return null;   
    59.             }   
    60.         }   
    61.   
    62.         @Override  
    63.         protected void onCancelled() {   
    64.             // TODO Auto-generated method stub   
    65.             super.onCancelled();   
    66.         }   
    67.   
    68.         @Override  
    69.         protected void onPostExecute(String result) {   
    70.             // TODO Auto-generated method stub   
    71.             super.onPostExecute(result);   
    72.             closeProgressDialog();   
    73.             if(result==null){   
    74.                 Toast t=Toast.makeText(mContext, "连接错误!

      请稍后再试!

      "

      , Toast.LENGTH_LONG);   
    75.                 t.setGravity(Gravity.CENTER, 00);   
    76.                 t.show();   
    77.                 return;   
    78.             }   
    79.                
    80.             Toast t=Toast.makeText(mContext, "已保存到SD卡。", Toast.LENGTH_LONG);   
    81.             t.setGravity(Gravity.CENTER, 00);   
    82.             t.show();   
    83.             File directory=Environment.getExternalStorageDirectory();   
    84.             File file=new File(directory,result);   
    85.             Log.i("tag""Path="+file.getAbsolutePath());   
    86.                
    87.             Intent intent = getFileIntent(file);   
    88.                
    89.             startActivity(intent);   
    90.                    
    91.         }   
    92.   
    93.         @Override  
    94.         protected void onPreExecute() {   
    95.             // TODO Auto-generated method stub   
    96.             super.onPreExecute();   
    97.             showProgressDialog();   
    98.         }   
    99.   
    100.         @Override  
    101.         protected void onProgressUpdate(Void... values) {   
    102.             // TODO Auto-generated method stub   
    103.             super.onProgressUpdate(values);   
    104.         }    
    105.   
    106.            
    107.     }   
    [java] view plaincopy
    1. //内部类  
    2. private class MyWebViewDownLoadListener implements DownloadListener {  
    3.   
    4.         @Override  
    5.         public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype,  
    6.                                     long contentLength) {  
    7.             if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){  
    8.                 Toast t=Toast.makeText(mContext, "须要SD卡。", Toast.LENGTH_LONG);  
    9.                 t.setGravity(Gravity.CENTER, 00);  
    10.                 t.show();  
    11.                 return;  
    12.             }  
    13.             DownloaderTask task=new DownloaderTask();  
    14.             task.execute(url);  
    15.         }  
    16.   
    17.     }  
    18.     //内部类  
    19.     private class DownloaderTask extends AsyncTask<String, Void, String> {   
    20.   
    21.         public DownloaderTask() {   
    22.         }  
    23.   
    24.         @Override  
    25.         protected String doInBackground(String... params) {  
    26.             // TODO Auto-generated method stub  
    27.             String url=params[0];  
    28. //          Log.i("tag", "url="+url);  
    29.             String fileName=url.substring(url.lastIndexOf("/")+1);  
    30.             fileName=URLDecoder.decode(fileName);  
    31.             Log.i("tag""fileName="+fileName);  
    32.               
    33.             File directory=Environment.getExternalStorageDirectory();  
    34.             File file=new File(directory,fileName);  
    35.             if(file.exists()){  
    36.                 Log.i("tag""The file has already exists.");  
    37.                 return fileName;  
    38.             }  
    39.             try {    
    40.                 HttpClient client = new DefaultHttpClient();    
    41. //                client.getParams().setIntParameter("http.socket.timeout",3000);//设置超时  
    42.                 HttpGet get = new HttpGet(url);    
    43.                 HttpResponse response = client.execute(get);  
    44.                 if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){  
    45.                     HttpEntity entity = response.getEntity();  
    46.                     InputStream input = entity.getContent();  
    47.                       
    48.                     writeToSDCard(fileName,input);  
    49.                       
    50.                     input.close();  
    51. //                  entity.consumeContent();  
    52.                     return fileName;    
    53.                 }else{  
    54.                     return null;  
    55.                 }  
    56.             } catch (Exception e) {    
    57.                 e.printStackTrace();  
    58.                 return null;  
    59.             }  
    60.         }  
    61.   
    62.         @Override  
    63.         protected void onCancelled() {  
    64.             // TODO Auto-generated method stub  
    65.             super.onCancelled();  
    66.         }  
    67.   
    68.         @Override  
    69.         protected void onPostExecute(String result) {  
    70.             // TODO Auto-generated method stub  
    71.             super.onPostExecute(result);  
    72.             closeProgressDialog();  
    73.             if(result==null){  
    74.                 Toast t=Toast.makeText(mContext, "连接错误。请稍后再试!", Toast.LENGTH_LONG);  
    75.                 t.setGravity(Gravity.CENTER, 00);  
    76.                 t.show();  
    77.                 return;  
    78.             }  
    79.               
    80.             Toast t=Toast.makeText(mContext, "已保存到SD卡。

      "

      , Toast.LENGTH_LONG);  
    81.             t.setGravity(Gravity.CENTER, 00);  
    82.             t.show();  
    83.             File directory=Environment.getExternalStorageDirectory();  
    84.             File file=new File(directory,result);  
    85.             Log.i("tag""Path="+file.getAbsolutePath());  
    86.               
    87.             Intent intent = getFileIntent(file);  
    88.               
    89.             startActivity(intent);  
    90.                   
    91.         }  
    92.   
    93.         @Override  
    94.         protected void onPreExecute() {  
    95.             // TODO Auto-generated method stub  
    96.             super.onPreExecute();  
    97.             showProgressDialog();  
    98.         }  
    99.   
    100.         @Override  
    101.         protected void onProgressUpdate(Void... values) {  
    102.             // TODO Auto-generated method stub  
    103.             super.onProgressUpdate(values);  
    104.         }   
    105.   
    106.           
    107.     }   

    第三步,实现一些工具方法。 
    Java代码 复制代码 收藏代码
    1. private ProgressDialog mDialog;   
    2.     private void showProgressDialog(){   
    3.         if(mDialog==null){   
    4.             mDialog = new ProgressDialog(mContext);     
    5.             mDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);//设置风格为圆形进度条     
    6.             mDialog.setMessage("正在载入 ,请等待...");     
    7.             mDialog.setIndeterminate(false);//设置进度条是否为不明白     
    8.             mDialog.setCancelable(true);//设置进度条能否够按退回键取消     
    9.             mDialog.setCanceledOnTouchOutside(false);   
    10.             mDialog.setOnDismissListener(new OnDismissListener() {   
    11.                    
    12.                 @Override  
    13.                 public void onDismiss(DialogInterface dialog) {   
    14.                     // TODO Auto-generated method stub   
    15.                     mDialog=null;   
    16.                 }   
    17.             });   
    18.             mDialog.show();   
    19.                
    20.         }   
    21.     }   
    22.     private void closeProgressDialog(){   
    23.         if(mDialog!=null){   
    24.             mDialog.dismiss();   
    25.             mDialog=null;   
    26.         }   
    27.     }   
    28.      public Intent getFileIntent(File file){   
    29. //       Uri uri = Uri.parse("http://m.ql18.com.cn/hpf10/1.pdf");   
    30.         Uri uri = Uri.fromFile(file);   
    31.         String type = getMIMEType(file);   
    32.         Log.i("tag""type="+type);   
    33.         Intent intent = new Intent("android.intent.action.VIEW");   
    34.         intent.addCategory("android.intent.category.DEFAULT");   
    35.         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   
    36.         intent.setDataAndType(uri, type);   
    37.         return intent;   
    38.       }   
    39.         
    40.     public void writeToSDCard(String fileName,InputStream input){   
    41.            
    42.         if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){   
    43.             File directory=Environment.getExternalStorageDirectory();   
    44.             File file=new File(directory,fileName);   
    45. //          if(file.exists()){   
    46. //              Log.i("tag", "The file has already exists.");   
    47. //              return;   
    48. //          }   
    49.             try {   
    50.                 FileOutputStream fos = new FileOutputStream(file);   
    51.                 byte[] b = new byte[2048];   
    52.                 int j = 0;   
    53.                 while ((j = input.read(b)) != -1) {   
    54.                     fos.write(b, 0, j);   
    55.                 }   
    56.                 fos.flush();   
    57.                 fos.close();   
    58.             } catch (FileNotFoundException e) {   
    59.                 // TODO Auto-generated catch block   
    60.                 e.printStackTrace();   
    61.             } catch (IOException e) {   
    62.                 // TODO Auto-generated catch block   
    63.                 e.printStackTrace();   
    64.             }   
    65.         }else{   
    66.             Log.i("tag""NO SDCard.");   
    67.         }   
    68.     }   
    69.        
    70.     private String getMIMEType(File f){      
    71.       String type="";     
    72.       String fName=f.getName();     
    73.       /* 取得扩展名 */     
    74.       String end=fName.substring(fName.lastIndexOf(".")+1,fName.length()).toLowerCase();   
    75.          
    76.       /* 依扩展名的类型决定MimeType */  
    77.       if(end.equals("pdf")){   
    78.           type = "application/pdf";//   
    79.       }   
    80.       else if(end.equals("m4a")||end.equals("mp3")||end.equals("mid")||     
    81.       end.equals("xmf")||end.equals("ogg")||end.equals("wav")){     
    82.         type = "audio/*";      
    83.       }     
    84.       else if(end.equals("3gp")||end.equals("mp4")){     
    85.         type = "video/*";     
    86.       }     
    87.       else if(end.equals("jpg")||end.equals("gif")||end.equals("png")||     
    88.       end.equals("jpeg")||end.equals("bmp")){     
    89.         type = "image/*";     
    90.       }     
    91.       else if(end.equals("apk")){      
    92.         /* android.permission.INSTALL_PACKAGES */      
    93.         type = "application/vnd.android.package-archive";    
    94.       }   
    95. //      else if(end.equals("pptx")||end.equals("ppt")){   
    96. //        type = "application/vnd.ms-powerpoint";    
    97. //      }else if(end.equals("docx")||end.equals("doc")){   
    98. //        type = "application/vnd.ms-word";   
    99. //      }else if(end.equals("xlsx")||end.equals("xls")){   
    100. //        type = "application/vnd.ms-excel";   
    101. //      }   
    102.       else{   
    103. //        /*假设无法直接打开,就跳出软件列表给用户选择 */     
    104.         type="*/*";   
    105.       }   
    106.       return type;   
    107.     }   

    转载于:https://www.cnblogs.com/gavanwanggw/p/6971582.html

    展开全文
  • 很肯定的告诉你:安卓手机一定要升级的,但...3.本土化功能的添加,新的功能层出不穷,要想有好的体验就得靠系统升级植入,比如界面和图标的重新绘制、添加如手势命令等等。4.新硬件的加入,软件层面要不断去适配,...

    4fade97f1db6777fa67c92326a20ca45.png

    很肯定的告诉你:安卓手机一定要升级的,但可以选择性升级。

    那么首先来说说为什么安卓手机要升级?

    1.没有绝对安全无BUG的系统,为了增加稳定性消除BUG,所以会持续升级。

    2.对硬件进行优化,比如通过软件优化来提高续航、手机速度等,提升用户体验。

    3.本土化功能的添加,新的功能层出不穷,要想有好的体验就得靠系统升级植入,比如界面和图标的重新绘制、添加如手势命令等等。

    4.新硬件的加入,软件层面要不断去适配,否则可能代来糟糕的体验。

    每次升级系统到底做了什么,程序发布者一定会把日志更新到界面中,方面用户了解此次升级的目的。然而,系统都是由程序猿一行行代码打造的,在推出之前一般都会经过

    alpha版(内部测试)--bate版(公测版)--正式版这样一个流程,真的很难保证每个版本都为零BUG,这个就需要在长时间实际使用中去测试,一旦发现问题开发者会及时的去修复,所以不是每一个版本都值得去第一时间升级的,如果只一味追求“最新”有可能就要承担升级失败的风险。

    cb24bba4ba85c1d6af8697072dcc382f.png

    手机升级的风险

    1、手机升级一般分为数据线升级和无线升级两种方式,现在人们一般都是习惯直接线上升级,虽然这样确实简单了不少,但是潜在的风险也是非常大的!因为线上升级并没有备份的过程,一旦出现升级失败就有可能出现不开机、重启、死机等各种意想不到的问题(当然这是小概率事件),所以如果你的数据很宝贵,请升级之前一定做好备份。

    2.最新的系统不一定是最好的,比如iPhone IOS中的13.1.2版很多人在吐槽电池耗电快、个人热点经常断线等,苹果公司也在一段时间后紧急发布IOS 13.4来进行修复,所以升级之前最好现在论坛中了解一下升级后的新特性,是不是自己非常需要的,如果不着急等等也可能不是件坏事。

    3.线刷的话也有风险,“变砖”这个词就是这么来的,手机厂商一般都有自己的手机助手,上面也有详细的说明和警告提醒,严格按照要求来一般没有什么问题。

    4.如果你的硬件年代比较久远,一般设备厂商就会放弃更新,但也不排除一些在做着更新,当前系统用着流畅没有什么BUG,就不建议去升级最新系统了,最新的一般都会增加了一些程式,体积越大肯定就会对硬件要求也越高,吃力的跑新系统与系统虽旧但流畅比起来你怎么选择?一定是后者对吧。

    6d85bb62a64b1a7c8507e801936dab87.png

    如何判断手机到底需不需要升级呢?

    如果自己的设备过于久远,可以先查看升级内容,如果不是特别需要的就保持现状就好了,毕竟硬件更新速度太快了,大厂商都会分设备进行升级,但有些厂商会统一升级,用老硬件吃力的去跑庞大的新系统,小牛拉大车很吃力!并且很多时候还不支持回退到以前的系统,很多固件时间长了官方都没有存档了。反之,如果是买了时间不长的新设备,肯定是紧随厂家的系统去更新,这个时候也是更新最为频繁的,这是在修复一些已知的BUG和加入一些新体验,还是非常有必要升级的。

    92582f64d0f752d95259747c9ddc2df5.png

    说了这么多,还回到问题上来,不管是题主问到的安卓设备或是苹果产品其实都是需要升级的,只是在不同情况下应该自己去判定要不要做,但有一点是一定要做的:

    在你决定升级前一定做好备份!一定做好备份!一定做好备份!

    展开全文
  • 豌豆荚安卓系统

    2014-03-26 21:46:06
    安卓系统利器,安装软件库非常强大,最新版本可升级无限制
  • 去年的时候,我写过一个...具体步骤今天主角就是windows 10 media creation tool这款软件,它是微软提供的Win10镜像下载工具,也是Win10正式版升级的官方工具。这款软件非常的简单易用,适合初学者升级或新安装win...
  • 本人也不小心升级到最新版本 , 结果发现必须的安装推荐游戏才能正常使用次数。新版本有增值广告了。非常厌恶。 特意珍藏的一个稳定版本也是老版本奉献给大家。 本人手机 联想A750手机 这个是至今我用做好的电话录音...
  • 当然,在软件系统上,各大智能手机厂商也没有忘记将最新的系统推送给用户。近日,根据多家科技媒体的消息,诺基亚正式宣布,诺基亚1这款智能手机开始Android Pie。就Android Pie系统来说,就是大家熟悉的安卓9.0系.....
  • 去年开始,以iPhone为首的苹果系列产品,在中国销量出现...产品缺乏创新,价格屡创新高,消费者升级欲望随之降低。虽然整个手机大环境由增量市场转为存量市场,但每年换机的用户量依然庞大。这个现象现已逐步由国内...
  • 自动检测升级 是否开启 二.查找系统内apk文件 按钮 三.下载系统安装包 按钮 四. 立即下载 按钮 五. 背景下载静默安装 按钮 背景下载静默安装有相应代码,未启用,本人技术尚浅,有相应功能要做的亲可借鉴相关代码,...
  • 使用帮助在软件中已写清楚,请点击软件中的“使用说明”按钮。
  • 关于安卓系统刷机

    千次阅读 2014-04-07 13:24:08
    升级安卓系统的话教你一个简单的刷机方法!先下载一个Z4 ROOT 软件,安装到手机上面,然后点击永久ROOT,手机会重启,重启后手机就会出现一个骷髅头一样的软件!打开电脑360,先把手机连接到电脑上,打开360 手机...
  • 很多同学配置安卓环境老是出现各种问题,其实很多的原因是版本升级问题所引起的,我这个软件包只需要先安装JDK,然后直接在window/preferences下配置SDK就行,如果还出现各种问题,你就最好要重装一下系统,可能是在...
  • 智能手机发展到今天,硬件表现早已不是决定手机优劣的唯一标准,除了在性能上需要有可靠保障之外,软件系统层面的各种优化以及精心设计也同样值得关注。如何打造一个更符合用户使用习惯的系统,一直都是各大厂商面对...
  • 路畅导航系统刷机固件大全是一款路畅车载导航系统刷机固件升级集合包,路畅导航固件升级、刷机、实现一机多图教程!如果没有出现卡机现象,可以不用刷机,毕竟刷机有风险。现在开始:第一步:准备一个可以读取的U盘,...
  • 安卓系统程序卸载器

    2012-10-31 21:15:55
    系统程序卸载器SystemApp Remover是一款程序管理软件,除了能正常卸载第三方程序外,还能卸载系统自带的程序,支持备份/恢复程序,需要root权限。(如果是采用升级的方式更新,有可能刷不出来系统的app,建议卸载掉...
  • 对于华为手机来说,今年注定是不平静的一年,在受到遏制后,华为手机硬件和软件均受到国人的关注,但相比硬件这块,软件方面却更让人...不过看起来华为并没有完全放弃安卓系统。应该是和小智说的那样,采取鸿蒙安...
  • 本次更新只涉及CoreELEC系统(简称CE),未涉及安卓系统,实在没时间弄2.CE升级到9.2.4.2,基于官方版本,更稳定3.增加Docker软件及Docker界面Portainer。Docker默认是禁用状态,需要在插件里启动一下。Portainer默认...
  • 例如选定设备的data/data目录,我用adb push进我的文件。在这个安卓设备被升级软件或者被刷机后,我的文件还存在,还可以读取。就是不知道哪个目录比较适合达到我的目的。
  • 对于安卓手机来说,除了硬件的升级引人关注外,软件系统升级也同样值得期待。虽然国产手机的系统基本都是定制的,但底层内核还是要靠原生安卓的版本更新。就在今天,谷哥终于发布了全新的安卓10.0系统。和之前的...
  • 老G7升级安卓4.0

    2012-07-01 14:50:00
    我不是一个会主动追着时髦东西跑的人,我的老G7上自带的安卓2.2,一直用到现在,但是不知是装的软件有啥冲突,还是用的时间长了系统出了什么问题 - 大概用了1年之后,就经常会死机,而且需要拔电池如此暴力的方法...
  • 每天都有分享,完全是免费订阅,请放心关注。为了能够打造“鸿蒙生态”,现有的3...兼容安卓应用,实现了软件生态;现有华为手机升级到鸿蒙系统,实现了硬件生态。为什么能升级到“鸿蒙系统”?华为自研的鸿蒙系统和...
  • 苹果IOS14系统已经发布一...而且安卓手机操作起来比苹果的简单多了知乎视频​www.zhihu.comIOS教程▍前期准备已升级ios 14系统的手机已安装快捷指令APP(Appstore下载)▍iOS14充电提示音教程首先获取提示音规则后,...
  • 头牌安卓应用市场提供各种最新、最热门的android游戏及安卓越网络游戏,头牌安卓游戏库是头牌英语学习网提供的关于安卓平台各类游戏的一个软件库,目前提供有十万多款各种安卓手机平台及安卓PAD(如联想乐PAD、国产...
  • 软件屋的小项目调用相机不成功是因为没有在系统设置中为应用打开相机使用期限 下面是百度上找到的关于安卓7.0之后的手机版本调用相机方法 1.现象 在项目中调用相机拍照和录像的时候,android4.x,Android5.x,Android6...
  • 软件介绍最新大众路畅1.51固件刷机包资源来自互联网,是一款路畅导航系统固件升级下载,车载导航仪的固件为其提供更加稳定的运行基石,同时也是修复导航仪疑难杂症的一种终极利器。不过需要提醒一点的是刷...
  • 软件碰到了问题,在其他安卓设备上都能正常运行。但是在这个设备上,进去后无法检测到麦克风(但实际上可以使用),拉流失败,直接显示了屏幕背景。 这个设备的商用版还不能进行直接调试,但如果一个个apk用优盘考...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 326
精华内容 130
关键字:

安卓系统升级软件