权限问题

gesanri 2010-01-12 10:03:22
现在有个问题很奇怪,程序中用到了android.permission.READ_CONTACTS这个权限,已经在Manifest.xml声明了这个权限,但执行程序时logcat依然提示无这个权限,不知为何(注:同样的环境下,在另一个程序中也用到了这个权限,而且程序运行成功),不知是否程序的问题,我把代码贴出来请大家帮忙运行下看行不行


EX05_10.java

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
/*必须引用database.Cursor,Contacts.People
与 net.uri等类来使用联系人数据*/
import android.database.Cursor;
import android.net.Uri;
import android.provider.Contacts.People;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class EX05_10 extends Activity
{
/*声明四个UI变量与一个常数作为Activity接收返回值用*/
private TextView mTextView01;
private Button mButton01;
private EditText mEditText01;
private EditText mEditText02;
private static final int PICK_CONTACT_SUBACTIVITY = 2;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

/*通过findViewById构造器来构造一个TextView,
两个EditText,一个Button对象**/
mTextView01 = (TextView)findViewById(R.id.myTextView1);
mEditText01 = (EditText)findViewById(R.id.myEditText01);
mEditText02 = (EditText)findViewById(R.id.myEditText02);
mButton01 = (Button)findViewById(R.id.myButton1);

/*设置onClickListener 让用户点击Button时搜索联系人*/
mButton01.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
/*建构Uri来取得联系人的资源位置*/
Uri uri = Uri.parse("content://contacts/people");
/*通过Intent来取得联系人数据并返回所选的值*/
Intent intent = new Intent(Intent.ACTION_PICK, uri);
/*打开新的Activity并期望该Activity返回值*/
startActivityForResult(intent, PICK_CONTACT_SUBACTIVITY);
}
});
}

@Override
protected void onActivityResult
(int requestCode, int resultCode, Intent data)
{
// TODO Auto-generated method stub
switch (requestCode)
{
case PICK_CONTACT_SUBACTIVITY:
final Uri uriRet = data.getData();
if(uriRet != null)
{
try
{
/* 必须要有android.permission.READ_CONTACTS权限 */
Cursor c = managedQuery(uriRet, null, null, null, null);
/*将Cursor移到资料最前端*/
c.moveToFirst();
/*取得联系人的姓名*/
String strName =
c.getString(c.getColumnIndexOrThrow(People.NAME));
/*取得联系人的电话*/
String strPhone =
c.getString(c.getColumnIndexOrThrow(People.NUMBER));
/*将姓名与电话写入EditText01,EditText02中*/
mEditText01.setText(strName);
mEditText02.setText(strPhone);
}
catch(Exception e)
{
/*将错误信息在TextView中显示*/
mTextView01.setText(e.toString());
e.printStackTrace();
}
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
}



main.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget32"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TextView
android:id="@+id/myTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_title"
android:layout_x="0px"
android:layout_y="0px"
>
</TextView>
<EditText
android:id="@+id/myEditText01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_name"
android:textSize="18sp"
android:layout_x="0px"
android:layout_y="22px"
>
</EditText>
<EditText
android:id="@+id/myEditText02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/str_telephone"
android:textSize="18sp"
android:layout_x="0px"
android:layout_y="82px"
>
</EditText>
<Button
android:id="@+id/myButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_button1"
android:layout_x="10px"
android:layout_y="142px"
>
</Button>
</AbsoluteLayout>

color.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="darkgray">#808080</drawable>
<drawable name="white">#FFFFFF</drawable>
<drawable name="blue">#0000FF</drawable>
</resources>

strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">EX05_10</string>
<string name="str_button1">搜索</string>
<string name="str_title">我的联系人</string>
<string name="str_name">姓名</string>
<string name="str_telephone">电话号码</string>
</resources>

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="irdc.EX05_10"
android:versionCode="1"
android:versionName="1.0.0">
<application android:icon="@drawable/icon" android:label="@string/app_name" android:permission="android.permission.READ_CONTACTS">
<activity android:name=".EX05_10" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<!--取得讀取通訊錄的權限 -->
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
</manifest>

...全文
367 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
gesanri 2010-01-14
  • 打赏
  • 举报
回复
没人么,就是帮我运行下看对不对而已

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧