【问题标题】:Android Studio startActvity requires permissionAndroid Studio startActivity 需要权限
【发布时间】:2015-12-04 14:35:47
【问题描述】:

我正在尝试进行一个简单的点击操作来调用某个数字,我处于代码的最后阶段,我看不出我做错了什么。目前它的 startActivity 动作似乎出现了错误,但我不知道为什么我看了多个教程,我可以看到任何不同。当上面的 startActivity 它通知我需要调用权限?

 protected void onCreate(Bundle savedInstanceState) {


    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    super.onCreate(savedInstanceState);
   getSupportActionBar().hide();
    setContentView(R.layout.activity_home);
    //On load the program automatically hides the taskbar.

    // ATTENTION: This was auto-generated to implement the App Indexing API.
    // See https://g.co/AppIndexing/AndroidStudio for more information.
    client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();


    Button b = (Button) this.findViewById(R.id.BTNCall);

    b.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v)
        {
            Intent PhoneCall = new Intent(Intent.ACTION_CALL);
            PhoneCall.setData(Uri.parse("tel:123"));
            startActivity(PhoneCall);
        }



    });


}

我还在 android 清单中添加了一个权限

 <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>

【问题讨论】:

  • 当我的代码中出现 startActivity 是错误,它突出显示为红色
  • 代码似乎在我的设备上运行良好。你可以从命令行运行gradle clean assemble 看看是否有任何错误吗?
  • 刚刚重新测试仍然没有区别,所以我打开了下一个项目并将其放入并完美运行,似乎是时候寻找故障了。
  • 只是跟进,但我知道错误不再存在,但只是为了惹恼我,它告诉我当我尝试按下按钮时它意外停止。
  • 如果你的目标是 M,并且权限还没有被授予(显然你没有要求它),它会抛出一个安全异常,你应该捕获它

标签: java android android-studio start-activity


【解决方案1】:

您应该将您的目标 SDK 版本设置为 lvl 22 或更低,因为对于 lvl 23 您需要在运行时询问用户的权限,请查看there 以获得更好的解释。

【讨论】:

  • 感谢完美回答
【解决方案2】:

由于您是从 OnClickListener 执行此操作的,因此“this”指针引用了您正在实现的 clickListener 类,您需要获取对您的活动的引用,只需使用:

MyActivityClassName.this.startActivity() //Dont know your class name

那应该去掉红色高亮。

如果您仍然遇到崩溃,我们将需要 logcat 输出来解决它。

希望这会有所帮助。

【讨论】:

  • 不,非静态内部类的方法解析也解析外部类方法。
  • 你是对的,从未尝试过,但我所说的“this”指针仍然是正确的。当您不指定对象时,我一直认为它已经在使用“this”。
猜你喜欢
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
  • 1970-01-01
  • 2016-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多