سورس بلاک کردن شماره در اندروید

یکشنبه 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>

خروجی به صورت زیر خواهد بود:

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید