美高梅4858-美高梅4858mgm-[官方网站]

Chuwen 发布的文章

Android 加了电话权限,运行还是闪退报错

AndroidManifest.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="cc.nowtime.seven">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:ignore="谷歌AppIndexingWarning">
        <activity android:name=".MainActivity">
            <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.CALL_PHONE" />

    <!--拨打电话权限-->
    <uses-permission android:name="android.permission.SEND_SMS"/>

</manifest>

运行报错

D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: cc.nowtime.seven, PID: 12685
    java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:xxxxx cmp=com.android.server.telecom/.components.UserCallActivity } from ProcessRecord{e2ed078 12685:cc.nowtime.seven/u0a135} (pid=12685, uid=10135) with revoked permission android.permission.CALL_PHONE
        at android.os.Parcel.createException(Parcel.java:2071)
        at android.os.Parcel.readException(Parcel.java:2039)
        at android.os.Parcel.readException(Parcel.java:1987)
        at android.app.IActivityTaskManager$Stub$Proxy.startActivity(IActivityTaskManager.java:3851)
        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1705)
        at android.app.Activity.startActivityForResult(Activity.java:5192)
        at android.app.Activity.startActivityForResult(Activity.java:5150)
        at android.app.Activity.startActivity(Activity.java:5521)
        at android.app.Activity.startActivity(Activity.java:5489)
        at cc.nowtime.seven.MainActivity$1.onClick(MainActivity.java:36)
        at android.view.View.performClick(View.java:7125)
        at android.view.View.performClickInternal(View.java:7102)
        at android.view.View.access$3500(View.java:801)
        at android.view.View$PerformClick.run(View.java:27336)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
     Caused by: android.os.RemoteException: Remote stack trace:
        at com.android.server.wm.ActivityStackSupervisor.checkStartAnyActivityPermission(ActivityStackSupervisor.java:1043)
        at com.android.server.wm.ActivityStarter.startActivity(ActivityStarter.java:760)
        at com.android.server.wm.ActivityStarter.startActivity(ActivityStarter.java:583)
        at com.android.server.wm.ActivityStarter.startActivityMayWait(ActivityStarter.java:1288)
        at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:514)
Process 12685 terminated.
java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:xxxxx cmp=com.android.server.telecom/.components.UserCallActivity } from ProcessRecord{e2ed078 12685:cc.nowtime.seven/u0a135} (pid=12685, uid=10135) with revoked permission android.permission.CALL_PHONE

原因

你的 APP 添加拨打电话权限,但是未申请拨打电话权限,所以报错,解决办法:

  • APP 主动申请获取 拨打电话权限
  • 手动授予 拨打电话权限

主动授予拨打电话权限

  1. 打开 设置 > 应用和通知
  2. 找到你的应用
    Snipaste_2019-12-07_20-13-40.png
  3. 然后允许对应权限就可以了
    Snipaste_2019-12-07_20-14-38.png

APP 主动申请获取 拨打电话权限

自己百度 ?????

Java 创建子线程,使它马上开始实行

public class InvokeRun extends Thread {
    private int i;

    @Override
    public void run() {
        for(; i<100; i++){
            System.out.println("["+Thread.currentThread().getName()+"]\t"+i);
        }
    }

    public static void main(String[] args) throws Exception{
        for(int i=0; i<100; i++){
            System.out.println(Thread.currentThread().getName()+"\t"+i);

            if(i == 20){
                new InvokeRun().start();
                new InvokeRun().start();
                //让当前主线程休眠 1ms
                //它会去实行另一个就绪状态的线程
                //这样的话,子线程就可以马上开始实行
                Thread.sleep(1);
            }
        }
    }
}

美高梅4858mgm 遍历 document.querySelectorAll()

如果使用 forEach 遍历,则会报错,因为它返回的不是一个数组,而是 NodeList

document.querySelectorAll('input[type='selece']]').forEach(function() {
  
});

大家可以通过一下方法来遍历

const selects = document.querySelectorAll("input[name='select']");
[].forEach.call(selects, function(select) {
    console.log(select);
});

Java 中的标号:outer 的作用

标号 label

标号 提供了一种简单的 break 语句所不能实现的控制循环的方法,当在循环语句中遇到break时,不管其它控制变量,都会终止。
但是,当你嵌套在几层循环中想退出循环时又会怎样呢?
正常的 break 只退出一重循环,你可以用标号标出你想退出哪一个语句。
char a;  
outer:  //this is the label for the outer loop  
for(int i=0;i<10;i++)  
{  
    for(int j=0;j<10;j++)    
    {      
        a=(char)System.in.read();      
        if(a=='b')        
        break outer;      
        if(a=='c')        
        continue outer;    
    }  
}
在这个例子中,循环从键盘接受 100 个输入字符,输入“b”字符时,break outer 语句会结束两重循环。
注意:continue outer 语句,它告诉计算机退出美高梅4858mgm的循环继续实行 outer 循环

例子2:

求 100-200 之间的质数
System.out.println("100~200 的质数");

int n = 0;

outer:
for (int i=101; i<200; i+=2){
    for (int j = 2; j<i; j++){
        if(i%j == 0) continue outer;//结束本次外层循环
    }

    System.out.print(" "+i);;//显示质数
    n++;//计算质数个数

    if(n<10) continue;//未满10个,则不换行
    System.out.println();
    n = 0;//重置质数个数
}

转载自:http://blog.sina.com.cn/s/blog_6f8bd746010136yr.html

XML 地图 | Sitemap 地图