2016-03-22 12 views
0

Kullanım android.support.v4.app.ActivityCompat.requestPermissions veya android.app.Activity.requestPermissions nasıl yapabilirim? her zaman tanımsız ÇünküNativeScript RequestPermission

Bu

var context = android.content.Context; 
var wifi_service = application.android.context.getSystemService(context.WIFI_SERVICE); 

wifi_service.setWifiEnabled(true); 
var rs = wifi_service.startScan(); 

console.log(android.support.v4.app.ActivityCompat.requestPermissions); // undefined 
console.log(android.support.v4.content.ContextCompat.requestPermissions); // undefined 

application.android.registerBroadcastReceiver(
    android.net.wifi.WifiManager.SCAN_RESULTS_AVAILABLE_ACTION, 
    function onReceiveCallback(context, intent) {  
    var tp = wifi_service.getScanResults(); 
    console.log(tp); // empty [] 
    console.log(tp.size()); // 0 
    }); 

ama dizi tp her zaman boştur yapmak istiyorum ve ben sağ izni gerektiğinden ve android, 6 biz

istemeniz anlamına i şey

<uses-feature android:name="android.hardware.wifi" /> 
<uses-feature android:name="android.hardware.location" android:required="false" /> 
<uses-feature android:name="android.hardware.location.network" android:required="false" /> 
<uses-feature android:name="android.hardware.location.gps" android:required="false" /> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
<uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

da C ekleyin: i de manifestfile eklemek

... \ app \ App_Resources \ Android \ app.gradle:

dependencies { 
    compile "com.android.support:support-v4:+" 
    , compile "com.android.support:appcompat-v7:+" 
} 

Teşekkür

cevap

0

kaldırıp android platformu eklemek denediniz mi? İşte bir örnek:

tns platform remove android 
tns platform add android 
0

Sorunu düzeltmek için CLI'yı yükseltip uygulamayı yeniden oluşturmamız gerekiyor.

Yeni bir uygulama oluşturdum ve baştan başladığımdan başladım! :) CLI'nin yükseltilmesinin sorunu çözdüğünü düşünüyorum ve bir uygulama yeniden oluşturmamız gerekiyor çünkü \ node_modules \ tns-core-modules aynı değil

Burada tarama sonucu sorununu düzeltmek için kod:

var context = android.content.Context; 
    var wifi_service = application.android.context.getSystemService(context.WIFI_SERVICE); 
    wifi_service.setWifiEnabled(true); 

    var rs = wifi_service.startScan(); 

    var hasPermission = android.os.Build.VERSION.SDK_INT < 23; 
    if (!hasPermission) { 
     hasPermission = android.content.pm.PackageManager.PERMISSION_GRANTED == 
     android.support.v4.content.ContextCompat.checkSelfPermission(application.android.foregroundActivity, android.Manifest.permission.ACCESS_COARSE_LOCATION); 
    } 

    var ACCESS_COARSE_LOCATION_PERMISSION_REQUEST_CODE = 555; 

    if (!hasPermission) { 
     android.support.v4.app.ActivityCompat.requestPermissions(
         application.android.foregroundActivity, 
         [android.Manifest.permission.ACCESS_COARSE_LOCATION], 
         ACCESS_COARSE_LOCATION_PERMISSION_REQUEST_CODE); 
    } 

    application.android.registerBroadcastReceiver(
      android.net.wifi.WifiManager.SCAN_RESULTS_AVAILABLE_ACTION 
      , function onReceiveCallback(context, intent) {  
       var tp = wifi_service.getScanResults(); 
       console.log(tp); 
      });