Android 仿360恶意广告拦截扫描

简介:
[java]  view plain  copy
 print ?
  1. public class GalleryMoveTest extends Activity {  
  2.     private TextView tv_hintTextView;  
  3.   
  4.     @Override  
  5.     protected void onCreate(Bundle savedInstanceState) {  
  6.         super.onCreate(savedInstanceState);  
  7.         setContentView(R.layout.gallerytest);  
  8.         tv_hintTextView = (TextView) findViewById(R.id.tv_hint);  
  9.         new AsyncTask<String, Integer, ArrayList<HashMap<String, Drawable>>>() {  
  10.   
  11.             @Override  
  12.             protected ArrayList<HashMap<String, Drawable>> doInBackground(  
  13.                     String... params) {  
  14.                 ArrayList<HashMap<String, Drawable>> appList = null;  
  15.                 appList = getAppList();  
  16.                 return appList;  
  17.             }  
  18.   
  19.             @Override  
  20.             protected void onPostExecute(  
  21.                     final ArrayList<HashMap<String, Drawable>> result) {  
  22.                 super.onPostExecute(result);  
  23.                 if (result != null) {  
  24.                     final Gallery gallery = (Gallery) findViewById(R.id.gallery1);  
  25.                     gallery.setPadding(10101010);  
  26.                     gallery.setAdapter(new ImageAdapter(GalleryMoveTest.this,  
  27.                             result));  
  28.                     final ProgressBar pBar = (ProgressBar) findViewById(R.id.pb_gallery);  
  29.                     pBar.setMax(result.size());  
  30.                     final Handler handler = new Handler() {  
  31.                         public void handleMessage(android.os.Message msg) {  
  32.                             int what = msg.what;  
  33.                             pBar.setProgress(what + 1);  
  34.                             gallery.setSelection(what);  
  35.                             tv_hintTextView.setText((what + 1) + "/"  
  36.                                     + result.size());  
  37.                             Log.i("max""max:" + result.size() + "prog "  
  38.                                     + (what + 1));  
  39.                         }  
  40.   
  41.                     };  
  42.                     new Thread(new Runnable() {  
  43.   
  44.                         private int progress = 0;  
  45.   
  46.                         @Override  
  47.                         public void run() {  
  48.                             while (progress < result.size()) {  
  49.   
  50.                                 try {  
  51.                                     Thread.sleep(500);  
  52.                                 } catch (InterruptedException e) {  
  53.                                     e.printStackTrace();  
  54.                                 }  
  55.                                 handler.sendEmptyMessage(progress++);  
  56.                             }  
  57.   
  58.                         }  
  59.                     }).start();  
  60.                 }  
  61.             }  
  62.         }.execute();  
  63.     }  
  64.   
  65.     private ArrayList<HashMap<String, Drawable>> getAppList() {  
  66.         PackageManager pManager = getPackageManager();  
  67.         List<ApplicationInfo> applications = pManager  
  68.                 .getInstalledApplications(0);  
  69.         ArrayList<HashMap<String, Drawable>> list = null;  
  70.         if (applications != null && applications.size() > 0) {  
  71.             list = new ArrayList<HashMap<String, Drawable>>();  
  72.             HashMap<String, Drawable> map = null;  
  73.             for (ApplicationInfo applicationInfo : applications) {  
  74.                 map = new HashMap<String, Drawable>();  
  75.                 String name = applicationInfo.loadLabel(pManager).toString();  
  76.                 Drawable icon = applicationInfo.loadIcon(pManager);  
  77.                 map.put(name, icon);  
  78.                 list.add(map);  
  79.             }  
  80.         }  
  81.         return list;  
  82.     }  
  83.   
  84.     public class ImageAdapter extends BaseAdapter {  
  85.         private Context mContext;  
  86.         private ArrayList<HashMap<String, Drawable>> mList;  
  87.   
  88.         public ImageAdapter(Context context,  
  89.                 ArrayList<HashMap<String, Drawable>> list) {  
  90.   
  91.             this.mContext = context;  
  92.             this.mList = list;  
  93.         }  
  94.   
  95.         @Override  
  96.         public int getCount() {  
  97.             return mList.size();  
  98.         }  
  99.   
  100.         @Override  
  101.         public Object getItem(int position) {  
  102.             return position;  
  103.         }  
  104.   
  105.         @Override  
  106.         public long getItemId(int position) {  
  107.             return position;  
  108.         }  
  109.   
  110.         @Override  
  111.         public View getView(int position, View convertView, ViewGroup parent) {  
  112.             HashMap<String, Drawable> hashMap = mList.get(position);  
  113.             Collection<Drawable> values = hashMap.values();  
  114.             ImageView imageView = null;  
  115.             for (Drawable drawable : values) {  
  116.                 imageView = new ImageView(mContext);  
  117.                 imageView.setScaleType(ScaleType.FIT_XY);  
  118.                 Gallery.LayoutParams galleryParams = new Gallery.LayoutParams(  
  119.                         100100);  
  120.                 imageView.setLayoutParams(galleryParams);  
  121.                 imageView.setImageDrawable(drawable);  
  122.             }  
  123.             return imageView;  
  124.         }  
  125.     }  
  126.   
  127. }  



转载:http://blog.csdn.net/chaoyu168/article/details/49077223

目录
相关文章
|
Android开发
Android中实现获取相册中的图片扫描二维码的功能
Android中实现获取相册中的图片扫描二维码的功能
285 0
|
2月前
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
80 15
Android 系统缓存扫描与清理方法分析
|
3月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
160 0
|
5月前
|
缓存 安全 Java
Android深入Binder拦截问题分析
【7月更文挑战第1天】Android Binder 拦截可实现虚拟化、测试、SDK检测、逆向分析及ROM扩展。通过Java层aidl代理,利用IBinder接口规范来拦截通信。拦截步骤包括:替换Binder服务缓存对象,如ActivityManagerService;代理ServiceManager以控制服务获取。此操作需系统权限,可能涉及安全风险和版本差异,非必要时应谨慎。
|
7月前
|
Java Android开发
Android 对adb命令的拦截
Android 对adb命令的拦截
104 2
|
7月前
|
缓存 Java Android开发
Android 9.0 WiFi 扫描结果上报和获取流程
Android 9.0 WiFi 扫描结果上报和获取流程
314 0
|
7月前
|
Android开发 网络架构
【Android App】检查手机连接WiFi信息以及扫描周围WiFi的讲解及实战(附源码和演示 超详细必看)
【Android App】检查手机连接WiFi信息以及扫描周围WiFi的讲解及实战(附源码和演示 超详细必看)
973 1
|
7月前
|
XML Java Android开发
Android Studio App开发实战项目之广告轮播(附源码 可用于大作业)
Android Studio App开发实战项目之广告轮播(附源码 可用于大作业)
295 1
|
7月前
|
物联网 Android开发
Android Ble蓝牙App(七)扫描过滤
Android Ble蓝牙App(七)扫描过滤
204 0
|
7月前
|
物联网 API Android开发
Android Ble蓝牙App(一)扫描(下)
Android Ble蓝牙App(一)扫描(下)
194 0