سورس بلاک کردن شماره در اندروید
یکشنبه 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
- 2k بازدید
- 3 تشکر