【发布时间】:2010-10-27 15:49:24
【问题描述】:
我想通过两种方式调用函数startActivity:
首先(有效):
public class HelloWorld extends Activity
{
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == 1){
startActivity(new Intent(Intent.ACTION_DIAL,Uri.parse("tel:660718109")));
}
else {
return super.onOptionsItemSelected(item);
}
return true;
}
第二: 在 HelloActivity.java 中
public class HelloWorld extends Activity {
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == 1){
IntentsUtils.tryOneOfThese(this);
}
else {
return super.onOptionsItemSelected(item);
}
return true;
}
在 IntentsUtils.java 中
public class IntentsUtils
{
public static void tryOneOfThese(Activity activity)
{
IntentsUtils.call(activity);
}
public static void call(Activity activity)
{
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:5555555555"));
Log.v("MyLogs", "It's works!");
activity.startActivity(intent);
}
}
第二种方法不起作用 - 当我点击菜单中的位置时,我的应用程序出错。我知道 IntentsUtils 中的函数“调用”可以工作,因为分析登录“LogCat”
这是我的 LogCat 日志: android.permission.CALL_PHONE
android.permission.CALL_PHONE> 10-27 16:10:56.702:
WARN/ActivityManager(52):权限 拒绝:开始 Intent { 行动=android.intent.action.CALL 数据=电话:5555555555 标志=0x10000000 cmp=com.android.phone/.OutgoingCallBroadcaster } 来自 ProcessRecord{43dbf4b8 363:com.androidbook/10025} (pid=363, uid=10025) 需要 android.permission.CALL_PHONE
10-27 16:10:56.722: 警告/dalvikvm(363):threadid=3:线程 以未捕获的异常退出 (组=0x4001b188)
10-27 16:10:56.722: 错误/AndroidRuntime(363):未捕获 处理程序:线程主退出由于 未捕获的异常
10-27 16:10:56.752: 错误/AndroidRuntime(363): java.lang.SecurityException: 权限拒绝:启动 Intent { 行动=android.intent.action.CALL 数据=电话:5555555555 标志=0x10000000 cmp=com.android.phone/.OutgoingCallBroadcaster } 来自 ProcessRecord{43dbf4b8 363:com.androidbook/10025} (pid=363, uid=10025) 需要 android.permission.CALL_PHONEandroid.permission.CALL_PHONE
提前致谢, 迈克尔
【问题讨论】:
-
您能否发布您在 LogCat 中遇到的确切错误?