1

Android 6.0 以降、アプリの実行時にパーミッションをリクエストする必要があります。

私のアプリでは、ローカル ストレージ、カメラ、位置情報、および音声録音のアクセス許可を使用しています。

したがって、ローカル ストレージ、カメラ、地理位置情報の要求は、そのスニペットで問題ありません: https://github.com/appcelerator-developer-relations/appc-sample-ti510/blob/master/app/controllers/permissions.js

しかし、私は録音許可を要求する方法を見つけていません...私は実際にAndroid用のtitutorial.audiorecorderモジュールを使用していますが、録音の許可が有効になっていないため、Android 6.0以降に録音しようとするとクラッシュします。

私の環境に関する詳細情報:

Operating System

Name                        = Mac OS X
  Version                     = 10.11.3
  Architecture                = 64bit
  # CPUs                      = 4
  Memory                      = 17179869184

Node.js
  Node.js Version             = 0.12.7
  npm Version                 = 2.11.3

Titanium CLI
  CLI Version                 = 5.0.6

Titanium SDK
  SDK Version                 = 5.2.0.GA
  SDK Path                    = /Users/****/#/mobilesdk/osx/5.2.0.GA
  Target Platform             = android

Appcelerator Studio 4.5.0.201602170821

tiapp.xml

<manifest>
    <uses-sdk android:minSdkVersion="15"/>
    <uses-sdk android:targetSdkVersion="23"/>
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <uses-feature android:glEsVersion="0x00020000" android:required="true"/>
    <uses-permission android:name="com.mycompany.myapp.permission.MAPS_RECEIVE"/>
...
...

</manifest>
4

1 に答える 1

0

ti.permissionsモジュールと再コンパイルされたバージョンの TiSDKが必要です。

  • Titanium SDK ディレクトリに移動します。例:/Users/[YOUR USER]/Library/Application Support/Titanium/mobilesdk/osx/
  • 5.2.0.GA ディレクトリを複製し、名前を 5.2.0.WhatYouWant に変更します。
  • サブディレクトリの下に移動し、この jarandroidに置き換えます: https://github.com/AppWerft/Tierstimmenarchiv/blob/master/modules/android/titanium.jartitanium.jar
  • その後、プロジェクト内で、新しい名前の SDK (5.2.0.WhatYouWant) にtiapp.xml置き換えて、ノードの下<sdk-version>5.2.0.GA</sdk-version>に挿入することを忘れないでください。<uses-permission android:name="android.permission.RECORD_AUDIO"/>tiapp.xml<android .... >

その後、次のスニペットを使用してストレージの許可をリクエストできます。

if (!require('ti.permissions').hasPermission('android.permission.RECORD_AUDIO'))
require('ti.permissions').requestPermissions(['android.permission.RECORD_AUDIO'], function(e) {
    if (e.success != 0)
        Ti.API.debug("Permissions OK");
    else
        Ti.API.warn("Permissions denied");
});
于 2016-03-09T15:04:43.010 に答える