<uses-permission android:name="android.permission.READ_CONTACTS"/>
package org.zbq.phone;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.PhoneLookup;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ScrollView;
import android.widget.TextView;
public class Menu2Activity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
TextView tv = new TextView(this);
ScrollView sv = new ScrollView(this);
StringBuffer str =new StringBuffer();
super.onCreate(savedInstanceState);
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
int i=0;
while(cursor.moveToNext()){
int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
String contact = cursor.getString(nameFieldColumnIndex);
// String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
StringBuffer pho =new StringBuffer();
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+contactId,
null,
null);
while(phone.moveToNext()){
String phoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
pho.append(phoneNumber+" ,");
}
str.append((++i)+":"+contact+pho.toString()+"\n");
// str.append(contact);
}
cursor.close();
sv.addView(tv);
tv.setText(str.toString());
setContentView(sv);
}
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 0, 0, R.string.app_name);
menu.add(0, 1, 1, R.string.app_name);
menu.add(1, 2, 2, R.string.app_name);
menu.add(1, 3, 3, R.string.app_name);
return super.onCreateOptionsMenu(menu);
}
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId()==3){
finish();
}
return super.onOptionsItemSelected(item);
}
}
分享到:
相关推荐
PhoneNumber 一个获取号码归属地和其他信息(诈骗、骚扰等)的开源库。支持本地离线(含归属地、骚扰、常用号码)和网络(百度、聚合数据或自定义 API)查询。English 下载 通过 gradle 下载 dependencies { ...
A small tool that you can edit your phone number. it only works you compile it with your private rom key-sign.
在Android平台上,"Number Picker"控件是iOS设备特有的,其功能类似于iOS中的数字选择器,允许用户通过上下滚动来选择一个数值。由于Android原生API并没有提供这样的组件,开发者通常需要自定义实现来达到类似的效果...
android移动开发VoLTE IMCB: ENTER imcb_imc_rat_change_ind_handler()@1#5158
android-phone-number-with-flags, 具有国家标志的交互式android电话号码输入框 android-phone-number-with-flags具有国家标志的交互式android电话号码输入框从网络自动检测国家/地区带有标记为 Spinner的国家列表...
django-phonenumber-field 一个与交互的Django库,用于验证,打印和转换电话号码。 python-phonenumbers是Google的库的端口,该库可为Android的电话号码处理提供支持。 包括: PhoneNumber ,围绕python-phone...
String phoneNumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); Log.d("Contact", "Name: " + displayName + ", Number: " + phoneNumber); } cursor.close(); ...
在Android中,这种效果可以通过`android.widget.NumberPicker`或自定义视图来实现。在iPhone上,对应的组件是`UIPickerView`。 源码实现部分可能包含以下几个关键点: 1. **自定义View**:由于Android原生的`...
android:id="@+id/phoneNumber" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入电话号码" /> android:id="@+id/dialButton" android:layout_width="wrap...
String phoneNumber = intent.getStringExtra(TelephonyManager.EXTRA_PHONE_NUMBER); if (isCallAllowed(phoneNumber)) { // 允许拨打电话 Log.d("CallInterceptor", "Call to " + phoneNumber + " is allowed....
callIntent.setData(Uri.parse("tel:" + phoneNumber)); // 检查权限,Android 6.0以上需要动态申请权限 if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager....
通常,我们会使用`SQLiteOpenHelper`来管理和操作数据库,创建必要的表(如`contacts`)并定义字段,如`_id`, `name`, `phone_number`, `email`等。在`query()`中,我们根据输入的URI和参数来构造SQL查询语句。 `...
首先,Android SDK本身提供了`NumberPicker`类,可以实现基本的数字滚动选择功能,但这并不能完全模拟iPhone的滑轮样式。为了达到更精确的仿制效果,我们需要自定义一个View来实现。这通常涉及到对Android的View体系...
callIntent.setData(Uri.parse("tel:" + phoneNumber)); if (callIntent.resolveActivity(getPackageManager()) != null) { startActivity(callIntent); } ``` 发送短信功能同样使用`Intent`,但是需要更多的配置...
这个"android_phone_state.rar_android"可能包含了一个示例项目或者库,用于演示如何在Android应用中实现电话状态监听。让我们深入探讨一下这个主题。 首先,要在Android应用中监听电话状态,你需要使用`...
callIntent.setData(Uri.parse("tel:" + phoneNumber)); // phoneNumber是你要拨打的号码 if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { ...
然后,我们通过`Intent.ACTION_DIAL`创建一个拨号Intent,将处理后的电话号码通过`Uri.parse("tel:" + phoneNumber)`转化为电话URI。最后,使用`startActivity(intent)`启动拨号界面。如果输入框为空,我们会显示一...
private static extern void SendSMS(string phoneNumber, string message); [DllImport("UnitySmsVibrator")] private static extern void Vibrate(int duration); } ``` 5. **调用方法**:现在,你可以在C#...
这个"android_phone_state.zip_android"压缩包包含了实现这一功能的源代码,为开发者提供了宝贵的参考资料。以下将详细讲解如何在Android应用中监听电话状态。 首先,Android系统通过`TelephonyManager`类提供电话...