سورس بلاک کردن شماره در اندروید
یکشنبه 12 شهریور 1396در این مقاله قصد داریم یک نمونه سورس برای شما قرار دهیم به این صورت که زمانی که تماس گرفته می شود، شما می توانید آن تماس را بلاک نمایید و هم می توانید یک شماره اضافه نمایید و آن را بلاک کنید.
ابتدا در کلاس قطعه کد زیر را قرار دهید:
<span style="font-size: small; font-family: georgia, palatino;">package com.example.blockcall; import java.util.ArrayList; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.view.ContextMenu; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ContextMenu.ContextMenuInfo; import android.widget.AdapterView; import android.widget.AdapterView.OnItemLongClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class ListActivity extends android.app.ListActivity implements OnItemLongClickListener{ /** Called when the activity is first created. */ private static final int ACTIVITY_CREATE=0; private static final int ACTIVITY_EDIT=1; private RemindersDbAdapter mDbAdapter; private ArrayList<String> numberList=null; private ArrayList<String> idList=null; // private int[] position=new int[100]; // private String[] titleItems=new String[100]; private int clickItem; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); numberList = new ArrayList<String>(); idList = new ArrayList<String>(); mDbAdapter=new RemindersDbAdapter(this); mDbAdapter.open(); registerForContextMenu(getListView()); displayLits(); } public void displayLits() { Cursor c=mDbAdapter.fetchAllReminders(); numberList.clear(); idList.clear(); startManagingCursor(c); c.moveToFirst(); //NEW if (c .moveToFirst()) { while (c.isAfterLast() == false) { String id= c.getString(c.getColumnIndex(RemindersDbAdapter.KEY_ROWID)); String name = c.getString(c .getColumnIndex(RemindersDbAdapter.KEY_TITLE)); numberList.add(name); idList.add(id); c.moveToNext(); } } // ArrayAdapter<String> ad =new ArrayAdapter<String>(this, R.layout.row, R.id.text1, numberList); setListAdapter(ad); } @Override public int getSelectedItemPosition() { // TODO Auto-generated method stub return super.getSelectedItemPosition(); } // // list item selected @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); // clickItem=position; clickItem=Integer.parseInt(idList.get(position)); Toast.makeText(getBaseContext(), "number "+clickItem, Toast.LENGTH_SHORT).show(); } // creating menu @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater mi = getMenuInflater(); mi.inflate(R.menu.items_menu, menu); } // // @Override public boolean onContextItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.menu_delete: Boolean bb= mDbAdapter.deleteReminder(clickItem); displayLits(); return true; case R.id.menu_cancel: return true; } return super.onContextItemSelected(item); } public boolean onItemLongClick(AdapterView<?> arg, View arg1, int pos, long id) { clickItem=Integer.parseInt(idList.get(pos)); Toast.makeText(getBaseContext(), "number "+clickItem, Toast.LENGTH_SHORT).show(); // TODO Auto-generated method stub return true; } }</span>
در لایه main هم قطعه کد زیر را قراردهید:
<span style="font-size: small; font-family: georgia, palatino;"><?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_delete" android:title="delete"></item> <item android:id="@+id/menu_cancel" android:title="Cancel" ></item> </menu></span>
در لایه ی mainfest هم قطعه کد زیر را قرار دهید:
<span style="font-size: small; font-family: georgia, palatino;"><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.blockcall" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_CONTACTS"/> <application android:icon="@drawable/icon_block" android:label="@string/app_name" android:theme="@style/AppTheme" > <receiver android:name=".Blocker"> <intent-filter android:priority="1000"> <action android:name="android.intent.action.PHONE_STATE"></action> </intent-filter> </receiver> <activity android:name=".Blockers" android:label="@string/app_name" android:icon="@drawable/icon_block"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".NumberList" android:label="@string/app_name" android:theme="@android:style/Theme.Light"> </activity> <activity android:name=".ListActivity" android:label="@string/app_name"></activity> </application> </manifest></span>
خروجی به صورت زیر خواهد بود:
- Android
- 1k بازدید
- 3 تشکر